【问题标题】:Pop-up modal with UITableView on iPhone (follow)iPhone 上带有 UITableView 的弹出模式(关注)
【发布时间】:2011-06-05 07:55:17
【问题描述】:

我已阅读帖子:Pop-up modal with UITableView on iPhone 而且我不明白答案的以下部分(因为我无法评论原始帖子,所以我创建了这个新问题):

UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:optionViewController];

为什么要分配一个新的控制器,因为调用新选项控制器的窗口可能已经有一个?

如果我只是写:

OptionViewController* optionViewController = [[OptionViewController alloc] initWithNibName:@"OptionView" bundle:nil];
[self.navigationController presentModalViewController:optionViewController animated:YES];

它似乎工作......

如果我有一个列表,它会转到详细视图,从那里切换到修改视图,然后从我调用此选项窗口的位置,调用此选项窗口的代码是什么?这个 ?还有一个吗?我真的在处理屏幕之间的 UINavigationController 时遇到了问题......(应该在哪里定义第一个,应该在屏幕之间传递什么,我什么时候可以创建一个新的......)

【问题讨论】:

    标签: iphone uiviewcontroller


    【解决方案1】:

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

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

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

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

    然后使用以下代码关闭模态视图:

        [self dismissModalViewControllerAnimated:YES];
    

    【讨论】:

    • 你的代码没问题。正如我所说,没有必要创建UINavigationController,除非您在模态视图中确实需要一个。
    • @Stephen Darlington :事实上,我一直在继续编写代码并发现了一个可能的问题。使用我的代码,我无法关闭模态视图...关于如何使用此代码执行此操作的任何想法? [self.navigationControllerdismissModalViewControllerAnimated:YES] 不起作用...当然在选项视图中,也不是在其父调用者中。
    • 不使用导航控制器没有根本问题。我在我的一个应用程序中正是这样做的。 dismissModalViewControllerAnimated:UIViewController 的一种方法,所以只需 [self dismissModalViewControllerAnimated:YES] 就可以了。
    • @Stephen Darlington:不...我想过,但它只是冻结了应用程序。
    • 我从我的应用程序中复制并粘贴了代码(此代码已在应用程序商店中发布一年多)。有用。如果您看到不同的行为,那么您需要显示更多代码,因为这些不是出错的位。
    猜你喜欢
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 2019-08-01
    • 2011-03-24
    • 1970-01-01
    相关资源
    最近更新 更多