簡體   English   中英

如果我不放松iOS中的Segue,會發生什么?

[英]What happens if I dont Unwind a Segue in iOS?

我有一個應用程序,其中有10個以上的ViewControllers並且有一個MenuViewController它由所有ViewControllers觸發。 並且MenuViewController觸發所有ViewControllers 因此,在應用程序中,我不會取消Segue,而是繼續觸發Segue。

方案:

方案

它會產生諸如內存不足或應用程序掛起之類的副作用嗎? 如果我繼續觸發segue而不放松它們,那會好嗎?

有人請幫助???

如果您繼續在導航堆棧上推送新的視圖控制器而沒有刪除以前的視圖控制器,最終將耗盡內存。 如果您永遠都不想彈出到先前的視圖控制器,則可以在每個視圖控制器中的推送轉換完成后刪除完整的導航歷史記錄viewDidAppear ::

- (void)viewDidAppear {
    [super viewDidAppear];
    self.navigationController.viewControllers = @[self];
}

另外,您可以通過設置導航控制器的委托並實現navigationController:didShowViewController:animated ::將此邏輯放在中央位置:

- (void)navigationController:(UINavigationController *)navigationController
       didShowViewController:(UIViewController *)viewController
                    animated:(BOOL)animated {
    navigationController.viewControllers = @[navigationController.viewControllers.lastObject];
}

暫無
暫無

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

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