簡體   English   中英

為什么不在viewDidLoad中執行SegueWithIdentifier工作?

[英]Why doesn't performSegueWithIdentifier work inside viewDidLoad?

一旦在視圖控制器上調用viewDidLoad,我就試圖觸發故事板segue。 segue附加了一個標識符,當從鏈接到按鈕或其他控件的方法內部調用時,它可以正常工作。 但它在viewDidLoad中不起作用。 它只是默默地失敗了。 在viewDidLoad中是否有一些關於segue被忽略的規則?

我試過這兩個:

[self performSegueWithIdentifier: @"mySegue" 
                          sender: self];

還有這個:

[self dismissViewControllerAnimated:YES completion:^() {
[self performSegueWithIdentifier:@"mySegue" sender:self];
}];

都沒有工作。

您無法關閉尚未顯示的視圖控制器。 didLoad具有純粹的內存管理功能,您可以將其用作(部分)構造函數。 可能有用的是在viewDidAppear啟動一個segue,但是我建議在第一次開始時使用你想要的視圖。

最可能的原因可能是操作系統在進行中時忽略了第二個屏幕轉換調用。 在ViewDidLoad中,視圖轉換(當前視圖)仍未完成。 您在完成之前要求另一個轉換,操作系統會忽略它。 它必須是從不同函數調用時segue工作的原因。 嘗試在ViewDidAppear內部調用(或延遲一段時間后)

暫無
暫無

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

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