0

有什么区别:

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

[self presentModalViewController:nav animated:YES];

其中 self 是 UIViewController 的子类。

除此之外,我如何消除模态视图是否重要?例子:

[self dismissModalViewControllerAnimated:YES];

或者

[self.navigationController dismissModalViewControllerAnimated:YES];

如果 modalView 由 呈现self.navigationController,如果调用它会被关闭self,反之亦然?

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

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

谢谢

4

1 回答 1

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 来关闭。

于 2012-04-05T16:53:52.423 回答