我没有使用故事板。目前在ViewController1中。在按钮单击事件中,我调用此代码。
InnerViewController *innerVc = [[InnerViewController alloc] initWithNibName:@"InnerViewController" bundle:nil titleText:@"vaibhav"];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:innerVc];
nav.restorationIdentifier = @"innerNavSR";
[self.navigationController presentViewController:nav animated:YES completion:nil];
在InnerViewController restorationIdentifier
和restorationClass
中给出。我有适当的方法来修复。像
viewControllerWithRestorationIdentifierPath
encode and decode restoration.
如果我改变我的
[self.navigationController presentViewController:nav animated:YES completion:nil];
到
[self.navigationController pushViewController:innerVc animated:YES];
工作正常。我现在缺少什么或做错了什么。试一试,我甚至试过这个:
[self presentViewController:nav animated:YES completion:nil];
但没用。不行。
呈现时的结果是 -
viewControllerWithRestorationIdentifierPath
和decodeRestorableStateWithCoder
被调用。来电也在viewdidload
但不在viewwillappear
。我在视觉上看到了Viewcontroller1
。但是push
目前 ??
需要特别之处答案 0 :(得分:2)
我有一个非常类似的问题,并且努力了半天。问题是我在定期创建视图控制器时分配了恢复标识符,但是在创建恢复的实例时没有分配它。
在您的特定场景中,请确保在恢复内部NC时,还会分配@" innerNavSR"返回操作系统之前的标识符。
希望有所帮助。