我有一个视图(viewB),该视图(viewB)像往常一样使用pushViewController从另一个视图(viewA)推入,但是由于某些原因,我希望viewB的控制器从其[self.navigationController popViewControllerAnimated:YES];
方法内部使用viewDidLoad
弹出视图或viewDidAppear
方法,但是它们都不起作用,即什么也没发生(应用程序中没有崩溃),但是,我在viewB中有一个带有IBAction的UIButton,如果轻按该按钮将起作用,则它会简单地调用[self.navigationController popViewControllerAnimated:YES];
,并且视图弹出到上一个视图!如果我从viewDidLoad或viewDidAppear方法中删除[self.navigationController popViewControllerAnimated:YES];
,则此IBAction会起作用,因为弹出会从内存中释放当前视图及其所有子视图。
问题是如何从viewDidLoad或viewDidAppear方法内部将当前视图(viewB)弹出到上一个视图(viewA)?
提前非常感谢您。
最佳答案
尝试制作方法
- (void)popSelf {
[self.navigationController popViewControllerAnimated:YES];
}
在
viewDidAppear
中添加[self performSelector:@selector(popSelf) withObject:nil afterDelay:0.0f];
这会将选择器添加到runloop,因此将在
viewDidAppear
之后执行。关于iphone - 将popViewControllerAnimated:放置在viewDidLoad或viewDidAppear中将不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8543462/