我遇到了一個完全困擾我的問題。 performSegueWithIdentifier在大多數設備上工作得非常好,但是當我使用ios 6.0版本在iPad上運行我的程序時,segue沒有發生。performSegueWithIdentifier無法在某些設備上工作
這裏是我的代碼是如何工作的:
我打電話performSegue:
[self performSegueWithIdentifier:@"watchSegue" sender:self];
觸發目標視圖控制器的initWithCoder:
-(id) initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
}
return self;
}
觸發prepareForSegue:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
...
}
這是不同的地方。對於在這個工程的所有設備,目的地視圖控制器的viewDidLoad中被調用:
- (void)viewDidLoad
{
....
不過與iPad iOS6.0它不會被調用,並實際執行不SEGUE。
重要的是要注意,我實際上沒有不同的iPad應用程序,我只是在iPad上運行iPhone應用程序,所以代碼和故事板是相同的。
------------ UPDATE 1: 我剛剛在運行5.1.1的iPhone上重現了這個錯誤。這超出了我爲什麼我的賽段一直在這個時間工作(並在這個版本中工作),只是在這種情況下,他們停止工作...
-----------更新2: 這個回答可悲的是不會對這個問題有更大的理解,也不會阻止它再次發生。然而,我確實解決了這個問題。
通過刪除segue並將其添加回故事板,我能夠解決問題。 viewDidLoad現在被調用並執行segue。
如果有人瞭解可能會出現什麼問題,我將不勝感激。
感謝您的迴應。我發現我實際上也可以在iOS 5.1.1中重現此問題。儘管我正在調查,但我不完全明白爲什麼某個特定的細節不起作用。 – Alex
只要調用loadView,那麼它不會傷害太多...因爲如果視圖已經加載,它將返回immd(懶惰實例化) – JeffChan