【问题标题】:presentModalViewController: DifferencespresentModalViewController:差异
【发布时间】:2012-04-05 16:49:59
【问题描述】:

有什么区别:

[self.navigationController presentModalViewController:nav animated:YES];

[self presentModalViewController:nav animated:YES];

self 是 UIViewController 的子类。

除此之外,我如何关闭模态视图是否重要? 示例:

[self dismissModalViewControllerAnimated:YES];

[self.navigationController dismissModalViewControllerAnimated:YES];

如果一个modalView由self.navigationController呈现,在self调用时是否会被dismiss,反之亦然?

我知道苹果建议在实际实现中使用协议和委托,但我只是想找出“幕后”的行为是否相同。

我一直在四处寻找答案,但我还没有找到任何东西,所以如果这是重复的,我事先道歉。

谢谢

【问题讨论】:

    标签: objective-c uiviewcontroller uinavigationcontroller presentmodalviewcontroller


    【解决方案1】:

    你是从哪个类调用的(即self 是什么)。如果您是从视图控制器调用它,那么区别在于您的视图控制器呈现的是 modalviewcontroller 而不是视图控制器的 navigationcontroller 呈现模态视图

    如果您使用self.navigationcontroller,您可以与视图控制器没有的self.navigationitem 进行交互。

    编辑:

    是的,它使您能够将额外的ViewControllers 推送到self.navigationController.ViewControllers 数组,然后使用navigationBar 从 ViewController 移动到 ViewController。

    作为示例,您可以执行[self.navigationController presentModalViewController:nav animated:YES];,然后如果用户单击按钮,您可以推送 ViewController [self.navigationController pushViewController:vc animated:YES]; 然后新的 View Controller/View 将出现在 ModalView 内。当您关闭 ModalViewController 时,您仍会被传送回原来的视图控制器。

    回答您的第二个问题:您应该以与呈现模式相同的方式关闭模式视图。所以如果你使用 self.navigationController 来呈现,使用 self.navigationController 来关闭。

    【讨论】:

    • 那么与 self.navigationItem 交互是否给了我一些在没有它的情况下呈现它的东西?
    猜你喜欢
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 2010-12-10
    • 2011-01-17
    • 2011-04-13
    • 2011-03-11
    • 1970-01-01
    相关资源
    最近更新 更多