2015-05-08 46 views
0

我必须编写一个支持iOS 7和8的iOS应用程序,并且在此应用程序中,我有两个视图控制器A和B以及导航控制器和它们之间的连线。当SEGUE激活,我不得不从视图控制器的数据获取到视图控制器B.我的代码完美地工作在iOS 8而不是在iOS 7prepareForSegue无法在iOS 7上获得目标视图控制器

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    // Get the new view controller using [segue destinationViewController]. 
    // Pass the selected object to the new view controller. 

    if segue.identifier == userDataSegue { 
     let navController = segue.destinationViewController as? UINavigationController 

     if let userDataTableViewController = navController?.topViewController as? UserDataTableViewController { 
      userDataTableViewController.userData = user 
     } 
    } 
} 

你知道为什么会发生这种情况,以及如何我可以修复它吗?我可以通过将东西保存在NSUserDefaults中并在vc B中读取来解决问题,但这会使我的代码变得混乱。

我感谢所有帮助:d

+0

什么是'userDataSegue'? – Schemetrical

+0

这是什么样的segue?一个模态?因为如果它是“常规”推送segue,destinationviewcontroller应该是userdatatableviewcontroller而不是另一个navigationcontroller。奇怪的是,你说它适用于ios8 ... –

+0

@AndreSlotta另一个视图控制器是一个嵌入了导航控制器的常规视图控制器。它确实可以在iOS 8上运行。 – rodrigoalves

回答

1

不要忘了创建第二ViewController中的公共属性用户数据。

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) 
{ 
if (segue.identifier == "segueTest") { 
var svc = segue!.destinationViewController as secondViewController; 

svc.userData = user 

} 
} 
相关问题