iOS7和iOS8的segue.destinationViewController

时间:2014-12-02 00:25:01

标签: ios objective-c iphone

我正在尝试让我的应用程序同时适用于iOS7和iOS8,并且我的视图控制器中的prepareForSegue方法遇到了问题。

在iOS8中 segue.destinationViewController属于UINavigationController类,因此我使用[[segue.desinationViewController viewControllers] objectAtIndex:0]工作正常,但iOS7中的 segue.desinationViewController是CMAMyViewControllerClassName类,当我尝试向其发送viewContollers消息时,这显然会引发错误。

我发现this解决方案可行,但我想知道是否有更好的解决方案?除了后一篇文章,我还没有找到任何关于它的信息。如果没有“正确”的解决方案,我将创建一个获取正确视图控制器的方法;我只是想知道其他人是如何处理这种情况的。

谢谢!

1 个答案:

答案 0 :(得分: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帖子中的解决方案。