簡體   English   中英

放松后執行程序化搜索

[英]performing programmatic segue after unwind

我有兩個View Controller,V1和V2。 V1在情節提要中為V2提供了模態選擇。 然后,我有一個放松的命令,將V2轉到V1。 然后調用下面的“完成”操作。 它會打印出正確的NSLog,但是不會啟動[self performSegueWithIdentifier:@"viewmessagessegue" sender:self] 當按下V1中的按鈕時,我使用同一行代碼,在這種情況下它可以正常工作。 我很困惑為什么不被稱為...

- (IBAction)done:(UIStoryboardSegue *)segue {
    SendToViewController *cc = [segue sourceViewController];
    _users = cc.recipients;
    NSLog(@"users: %@",_users"); // has the correct data
   [self performSegueWithIdentifier:@"viewmessagessegue" sender:self];
    NSLog(@"perform segue...:"); // this gets printed
}

我對這個答案不是很肯定,但是我認為當執行“ done:”時,實際上並沒有在該類中執行(意味着前一個屏幕的類)。 它可以在中間位置執行,也可以在調用類中執行(這是您要從中展開屏幕的類)。 如果是這樣,它將嘗試從展開端而不是從V1端執行prepareForSegue:,因為可能沒有segue.identifier,所以它將繼續,好像找不到一個。別把這當作福音...我想是在這里,但我可能並不太遠。 您可能可以將NSLog放入V2 prepareForSegue:中進行檢查。

暫無
暫無

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

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