---
title: "Verify iOS tab restoration preserves detail context"
description: "Check iOS tab navigation with distinct records to ensure returning to a detail screen restores the right item, scroll context, and saved status."
canonical_url: "https://vostride.com/agent-library/ios-flows/tab-restoration-keeps-detail-context.md"
md_url: "https://vostride.com/agent-library/ios-flows/tab-restoration-keeps-detail-context.md"
content_kind: "recipe"
topic: "ios-flows"
---

# Verify iOS tab restoration preserves detail context

Check iOS tab navigation with distinct records to ensure returning to a detail screen restores the right item, scroll context, and saved status.

## Risk

Tab controllers can reuse a detail view with stale data from another tab. Verify identity and one meaningful mutation before switching so returning to a familiar layout is insufficient to pass.

## Fixtures

- An iOS sandbox target and explicit app-state policy with a test account allowed to read and mark fixture documents.
- Two tabs with similarly styled detail screens and different documents; the first document has a long body and a mark-reviewed action.
- An independent document-status oracle and a product requirement describing retained tab navigation and scroll behavior.

## Steps

1. In the Documents tab, open fixture A, scroll to its unique final section, and verify its identifier and final-section marker.
2. Mark A reviewed and verify the reviewed status appears, then inspect the read oracle and verify A alone changed.
3. Switch to the Messages tab, open fixture B, and verify its different identifier and body so the second detail context is established.
4. Return to Documents and verify the app restores A, its reviewed status, and the documented retained scroll position near the final marker.
5. Navigate back to the document list and reopen A; verify the same reviewed state persists and B remains unchanged in the independent oracle.

## Expected results

- Returning to the first tab restores its own document identity rather than the last globally opened record.
- The reviewed mutation persists only for A in independent data.
- The documented navigation depth and scroll context are restored together.

## False-pass traps

- A common detail header can hide content from the wrong tab.
- The reviewed badge may be cached even when the mutation was applied to another identifier.

## Cleanup

- Clear the reviewed flag on fixture A and return both tabs to their initial screens.

## Use with agent-qa

Adapt this test design to your application's acceptance criteria and configured target using the [recipe execution guide](/agent-library/software-factory/turn-a-recipe-into-an-agent-qa-test.md). External fixture setup and non-UI checks require your own supported hooks or test tooling. Validate the authored test, execute it, and inspect the completed evidence; this recipe is not a recorded test result.

## References

- [agent-qa mobile testing](/docs/agent-qa/guides/mobile-testing.md)
- [agent-qa test](/docs/agent-qa/configuration/test.md)
- [agent-qa hooks](/docs/agent-qa/guides/hooks.md)

- [iOS application QA recipes](/agent-library/ios-flows.md)
- [Software factory QA library](/agent-library.md)
