放置popViewControllerAnimated:在viewDidLoad或viewDidAppear中将无效

时间:2011-12-17 07:57:03

标签: iphone objective-c ios

我有一个视图(viewB),像往常一样使用pushViewController从另一个视图(viewA)使用导航控制器推入,但出于某种原因,我希望viewB的控制器从内部使用[self.navigationController popViewControllerAnimated:YES];弹出视图它的viewDidLoad方法或viewDidAppear方法,但没有一个工作,即没有任何事情发生(应用程序中没有崩溃),但是,我在viewB中有一个UIButton,IBAction只调用{{1如果点击按钮它将工作,视图弹出到上一个视图!如果我从viewDidLoad或viewDidAppear方法中删除[self.navigationController popViewControllerAnimated:YES];,则此IBAction有效,因为弹出将从内存中释放当前视图及其所有子视图。 问题是如何从viewDidLoad或viewDidAppear方法中将当前视图(viewB)弹出到上一个视图(viewA)?

提前感谢你。

1 个答案:

答案 0 :(得分:5)

尝试制作方法

- (void)popSelf {
    [self.navigationController popViewControllerAnimated:YES];
}

viewDidAppear添加

[self performSelector:@selector(popSelf) withObject:nil afterDelay:0.0f]; 

这会将选择器添加到runloop,因此它将在viewDidAppear之后执行。