0

我們在應用程序委託中有這樣的功能。當本地通知出現時,執行下面的代碼,並且可能導致崩潰,因爲我在insertSubview執行的行中理解。 我該如何安全地做到這一點?謝謝。更改視圖的安全方式?

-(void)changeController:(UIViewController*)newController { 
    self.currentController = newController; 
    if([self.window.subviews containsObject:self.menuController.view]) { 
     [self.window insertSubview:newController.view belowSubview:self.menuController.view]; 
    } 
    else { 
     self.window.rootViewController = self.currentController; 
    } 
} 
+1

你看到了什麼崩潰?請提供有關問題的更多信息,以便我們可以幫助您解決問題。 – bdesham

+0

錯誤是該視圖不再存在。在控制器之間轉換時發生這種情況。 – Oleg

+0

@Oleg在你的情況下,你可以檢查視圖是否存在,如果不存在,返回。 – chancyWu

回答

1

如果你的意見/視圖控制器是UINavigationViewController的一部分,那麼你應該管理他們的方法是使用這個類的方法:具體的東西像pushViewController:animated:。一般來說,如果你有自己的視圖控制器「控制」的視圖,你可能不應該抓住這些視圖並將它們附加到其他視圖層次結構中。

+0

我同意你的意見不應該這樣做 – AppHandwerker