2014-12-02 76 views
1

我試圖讓我的應用程序與iOS7和iOS8一起工作,並遇到了我的視圖控制器中的prepareForSegue方法中的問題。iOS7和iOS8 segue.destinationViewController

在iOS8上segue.destinationViewController是一流的UINavigationController的,所以我在iOS7segue.desinationViewController使用[[segue.desinationViewController viewControllers] objectAtIndex:0],工作正常,但是類CMAMyViewControllerClassName,當我嘗試發送viewContollers消息,它這顯然會引發錯誤的。

我發現this解決方案將工作,但我想知道是否有更好的解決方案?除了後者,我還沒有找到任何有關它的信息。如果沒有「適當的」解決方案,我會創建一個獲取正確視圖控制器的方法;我只是想知道其他人如何處理這種情況。

謝謝!

+0

爲什麼目標控制器不同?你對兩個不同的目標使用不同的故事板嗎? – rdelmar 2014-12-02 00:29:38

+0

我不確定他們爲什麼不同;我只是假定它已更改爲iOS8。不,我不是,我正在使用一個故事板。 – cohenadair 2014-12-02 00:31:07

+0

據我所知,iOS 7和8之間不應該改變。你怎麼測試這個?你有2個不同的應用程序,一個7和一個8或兩個目標,或什麼? – rdelmar 2014-12-02 02:11:16

回答

1

此問題是由試圖訪問其屬性的一個前檢查類目標視圖控制器的解決:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    DestController *vc = segue.destinationViewController; 

    if ([dvc isKindOfClass:[DestController class]]) 
     dvc.propertyName = @"Property Value"; 
    else 
     // do something else 
} 

從溶液中this線程服用。

相關問題