簡體   English   中英

將popViewControllerAnimated:放置在viewDidLoad或viewDidAppear中將不起作用

[英]placing popViewControllerAnimated: in viewDidLoad or viewDidAppear will not work

我有一個視圖(viewB),該視圖(viewB)像往常一樣使用pushViewController從另一個視圖(viewA)推入,但是由於某些原因,我希望viewB的控制器使用[self.navigationController popViewControllerAnimated:YES];彈出視圖[self.navigationController popViewControllerAnimated:YES]; 從它的viewDidLoad方法或viewDidAppear方法內部,但是它們都不起作用,即什么也沒發生(應用程序中沒有崩潰),但是,我在viewB中有一個帶有IBAction的UIButton,它僅調用[self.navigationController popViewControllerAnimated:YES]; 如果點擊該按鈕,它將起作用,並且該視圖跳至上一個視圖! 如果我刪除了[self.navigationController popViewControllerAnimated:YES];則此IBAction起作用[self.navigationController popViewControllerAnimated:YES]; 從viewDidLoad或viewDidAppear方法獲取,因為彈出會從內存中釋放當前視圖及其所有子視圖。 問題是如何從viewDidLoad或viewDidAppear方法內部將當前視圖(viewB)彈出到上一個視圖(viewA)?

提前非常感謝您。

嘗試制作方法

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

viewDidAppear添加

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

這會將選擇器添加到runloop,因此它將在viewDidAppear之后執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM