我可以让iOS UINavigationController处于相同状态吗?
我的应用程序中有一个UIViewController,其中包含问题、MCQ答案及其相关分数 我将此控制器推入另一个控制器,即我可以让iOS UINavigationController处于相同状态吗?,ios,uiviewcontroller,Ios,Uiviewcontroller,我的应用程序中有一个UIViewController,其中包含问题、MCQ答案及其相关分数 我将此控制器推入另一个控制器,即 QuestionViewController *questionController = [delegate getQuestionScreen]; // If Iphone/iPod Touch if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone
QuestionViewController *questionController = [delegate getQuestionScreen];
// If Iphone/iPod Touch
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
// If iPhone 5 or new iPod Touch
if([UIScreen mainScreen].bounds.size.height == 568){
questionController = [[QuestionViewController alloc] initWithNibName:@"QuestionViewController" bundle:nil];
} else{
// Regular iPhone
questionController = [[QuestionViewController alloc] initWithNibName:@"QuestionViewController_iPhone4" bundle:nil];
}
}
questionController.modalPresentationStyle = UIModalTransitionStyleCrossDissolve;
[self.navigationController pushViewController:questionController animated:NO];
当我在这个控制器上时,我打开侧菜单(如facebook)和新控制器的选择选项,比如HelpController
DemoViewController *demoController = [[DemoViewController alloc] initWithNibName:@"HelpViewController_iPhone4" bundle:nil];
UINavigationController *navigationController = self.menuContainerViewController.centerViewController;
NSArray *controllers = [NSArray arrayWithObject:demoController];
navigationController.viewControllers = controllers;
[self.menuContainerViewController setMenuState:MFSideMenuStateClosed];
当我返回到QuestionViewController的上一个屏幕时,我必须创建该控制器的新对象,结果是,当它更新时,我丢失了所有的计算和旧数据
如何存储旧控制器以再次导航或在特定状态下重复使用
如果关于这个问题有什么不清楚的地方,请问我……不要这样做:
NSArray *controllers = [NSArray arrayWithObject:demoController];
navigationController.viewControllers = controllers;
因为它要求导航控制器丢弃所有当前视图
相反,按下新控制器
如果由于某种原因无法直接推送它,请创建一个实例变量(
NSArray
),并在替换它之前使用它存储navigationController.ViewController
,然后您可以稍后还原。您的QuestionViewController是根视图吗?您正在执行的计算是在QuestionViewController上进行的?我不明白您的问题以及为什么要为iPhone 4和5创建同一视图控制器的两个对象。我真的不知道你能详细说明一下吗?我不确定这个解决方案,因为我没有正确地回答你的问题,但你可以使用singleton对象。问题视图控制器不是根视图控制器,我的答案是1。副代表,2。容器(侧菜单)3。DemoViewController,,,,,,在演示屏幕后,我正在推送视图,如问题,让我试试,如果有任何问题或查询,我会问你们。谢谢你的回复。两者都不同,我是否应该向你解释更多关于应用程序继承人的问题。不同?演示结束后,您想返回到之前的位置还是其他地方?我将QuestionViewController保存在数组中并检索最后一个对象。谢谢@Wain