self.navigationController和delegate.navigationController有什么区别

时间:2010-01-15 12:29:30

标签: iphone objective-c delegates uiviewcontroller uinavigationcontroller

我可以使用

MyFirstAppDelegate *delegate = (MyFirstAppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate.navigationController popViewControllerAnimated:YES];

[self.navigationController popViewControllerAnimated:YES];

那么两者有什么区别?

请回答我......

提前致谢..

2 个答案:

答案 0 :(得分:6)

当您从非导航控制器控制的视图控制器的对象访问导航控制器时,可以使用第一个窗体。该表单通过拥有它的对象(即应用程序委托)访问导航控制器。由于可以从程序中的任何位置轻松调用应用程序委托,因此它是一个停放事物的好地方,而不是任何对象可能需要引用。

您可以使用由导航控制器控制的视图控制器中的第二种形式。它只能在先前被推入堆栈的视图控制器中工作。

答案 1 :(得分:4)

我假设您有一个导航控制器,代码正在该导航堆栈上的视图控制器中执行。

如果是这样,那么他们都访问相同的导航控制器,他们之间没有区别

通常,您将使用第二种形式。