我可以使用
MyFirstAppDelegate *delegate = (MyFirstAppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate.navigationController popViewControllerAnimated:YES];
或
[self.navigationController popViewControllerAnimated:YES];
那么两者有什么区别?
请回答我......
提前致谢..
答案 0 :(得分:6)
当您从非导航控制器控制的视图控制器的对象访问导航控制器时,可以使用第一个窗体。该表单通过拥有它的对象(即应用程序委托)访问导航控制器。由于可以从程序中的任何位置轻松调用应用程序委托,因此它是一个停放事物的好地方,而不是任何对象可能需要引用。
您可以使用由导航控制器控制的视图控制器中的第二种形式。它只能在先前被推入堆栈的视图控制器中工作。
答案 1 :(得分:4)
我假设您有一个导航控制器,代码正在该导航堆栈上的视图控制器中执行。
如果是这样,那么他们都访问相同的导航控制器,他们之间没有区别。
通常,您将使用第二种形式。