在我的iOS项目中,我有一个主菜单,显示在我的初始UIViewController
中的容器中。
在用户选择该菜单中的任何行之后,导航控制器将按下用于管理进一步操作的子菜单viewController
,该子菜单使用完整窗口。
如果用户想要返回主屏幕,他会点击“返回”按钮,我的navigationController
会弹出。但是当它应该弹出到主viewController
时,它无法恢复我的初始viewController
的视图。
如果该视图控制器中包含嵌入了视图控制器的容器,您是否有任何线索如何回弹到viewController
层次结构中的第一个navigationViewController
?
或者我应该考虑更改故事板的架构?
答案 0 :(得分:1)
如果您希望初始视图控制器包含正确的子视图,则需要隐藏/显示在viewDidDisappear
中随着用户移动到新视图时需要使其显示的样子,或者你需要在viewWillAppear
回来时设置它。
但是,当您离开时,您的视图设置是在您返回时显示的方式,除非您更改它。例如,在根视图控制器中:
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
// hide your menu, clean up the view to prepare it for when user pops back
}
OR
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// if menu is showing, hide it. Clean up view before user sees it
}
答案 1 :(得分:1)
导航控制器中的视图控制器具有子视图控制器这一事实并不重要。只关心推入导航控制器堆栈的顶级视图控制器。并且只推送/弹出顶级视图控制器,而不是儿童。
如果您遇到问题,可能会出错,并且需要发布故事板的屏幕截图,以及显示您如何管理导航控制器堆栈的代码。