我在一些UIViewControlle中需要回到上一个,我使用这段代码:
NSLog(@"%@", [self.navigationController popViewControllerAnimated:YES]);
// Here I need to reference to the view I am going go to to call some function before this view is being displayed
NSLog(@"Done button pressed");
但是(正如评论中所写),我需要获得对pop函数执行后显示的视图的引用(上一个viewController。
答案 0 :(得分:1)
您可以使用UINavigationController
属性topViewController,它为您提供堆栈顶部的视图控制器。
只需在弹出之前调用它,或者将其设置为下一个:)
您还可以访问viewControllers
属性以获取导航控制器堆栈包含的所有视图控制器。
答案 1 :(得分:0)
查看online docs中的viewControllers
属性。它将为您提供导航堆栈中的一组视图控制器:
根视图控制器位于数组中的索引0处,后视图控制器位于索引n-2处,顶部控制器位于索引n-1处,其中n是数组中的项目数。
因此,您想要的视图控制器将位于索引n-2
。
答案 2 :(得分:0)
除了@Geoffroy和@Maurice Kelly所说的......
在调用popViewControllerAnimated:
函数
// I should get reference to the object here before calling the popViewControllerAnimated: function
NSLog(@"%@", [self.navigationController popViewControllerAnimated:YES]);
NSLog(@"Done button pressed");