我已阅读帖子:Pop-up modal with UITableView on iPhone 我不明白答案的以下部分(因为我无法评论原帖,我创建了这个新问题):
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:optionViewController];
为什么要分配一个新的控制器作为调用新的optionController的窗口可能已经有一个?
如果我写的话怎么办?
OptionViewController* optionViewController = [[OptionViewController alloc] initWithNibName:@"OptionView" bundle:nil];
[self.navigationController presentModalViewController:optionViewController animated:YES];
似乎有效......
如果我有一个列表,那将转到详细视图,从我切换到修改视图,然后从我调用此选项窗口的地方,用于调用此选项窗口的代码是什么?这个 ?还有其他吗?我在屏幕之间处理UINavigationController时遇到了问题......(应该在第一个定义,屏幕之间应该传递什么,何时可以创建一个新屏幕,...)
答案 0 :(得分:2)
模态视图不使用其父级的UINavigationController
。这意味着如果您需要在模态视图中“堆叠”新的视图控制器,那么您需要添加自己的视图控制器。另一方面,如果您在模态视图中不需要导航控制器的功能,则没有理由添加导航控制器。
以下是我在两个应用中如何做到这一点的详细信息:
我的根视图控制器有一个UINavigationController。我使用以下代码打开模态视图:
TwitterPostViewController* vc = [[TwitterPostViewController alloc] init];
[viewc presentModalViewController:vc animated:YES];
[vc release];
然后使用此代码解除模态视图:
[self dismissModalViewControllerAnimated:YES];