SWIFT 3:与导航控制器争论

时间:2016-10-21 07:50:31

标签: ios iphone uinavigationcontroller segue uistoryboardsegue

我试图将一些值从一个viewcontroller发送到另一个viewcontroller。 (全部嵌入在NavigationController中)。我可以用普通视图控制器制作segue,所以一般来说我理解一个segue的想法。我以两种不同的方式做到这一点,并遇到了两个不同的问题。

第一种方式,segue做对了,但是"两次"。我的意思是在segue(我想要)之后还有另一个segue到同一个控制器,但没有导航控制器,没有数据我会发送。 "返回"最后一个viewcontroller上的按钮返回到AlmostViewController。

此处的代码:enter image description here

第二种方式,什么也没发生,

  

ErorCould不能转换类型' RevisionApp.AlmostViewController'   (0x1055d58c0)到' UINavigationController' (0x107669f18)。

此处的代码:enter image description here

3 个答案:

答案 0 :(得分:0)

对于第一个问题,当使用嵌入式导航控制器时,您不必在点击按钮时创建动作功能。导航控制器为您完成。所以你需要做的事情:

  1. 使用storyBoard从按钮断开功能btnTapped
  2. 删除或评论函数btnTapped(您不需要它)。

答案 1 :(得分:0)

问题是第18行。您正在尝试将AlmostViewController投射到UINavigationController。像这样直接访问,

let detailController = segue.destination as! AlmostViewController

答案 2 :(得分:0)

让storyBoard:UIStoryboard = UIStoryboard(名称:“Main”,bundle:nil)

让nextViewController = storyBoard.instantiateViewControllerWithIdentifier(“ViewController2”)作为NextViewController self.presentViewController(nextViewController,animated:true,completion:nil)