我有一个视图(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/

10-10 20:53