在iPhone上使用UITableView弹出模式(如下)

时间:2011-01-07 14:49:36

标签: iphone uiviewcontroller

我已阅读帖子: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时遇到了问题......(应该在第一个定义,屏幕之间应该传递什么,何时可以创建一个新屏幕,...)

1 个答案:

答案 0 :(得分:2)

模态视图不使用其父级的UINavigationController。这意味着如果您需要在模态视图中“堆叠”新的视图控制器,那么您需要添加自己的视图控制器。另一方面,如果您在模态视图中不需要导航控制器的功能,则没有理由添加导航控制器。

以下是我在两个应用中如何做到这一点的详细信息:

我的根视图控制器有一个UINavigationController。我使用以下代码打开模态视图:

        TwitterPostViewController* vc = [[TwitterPostViewController alloc] init];
        [viewc presentModalViewController:vc animated:YES];
        [vc release];

然后使用此代码解除模态视图:

    [self dismissModalViewControllerAnimated:YES];