SWIFT 3:使用导航控制器进行 Segue
SWIFT 3: Segue with navigation controller
我正在尝试将一些值从一个 viewcontroller 发送到另一个。 (全部嵌入在 NavigationController 中)。我可以用法线 viewcontrollers 进行 segue,所以总的来说我理解 segue 的想法。我必须以两种不同的方式做到这一点,但遇到了两个不同的问题。
第一种方式,segue 做对了,但是"two times"。我的意思是在 segue(我想要的)之后,同一个控制器有另一个 segue,但没有导航控制器,也没有我要发送的数据。最后 viewcontroller 上的 "back" 按钮返回到 AlmostViewController。
代码如下:
第二种方式,什么都没发生,
ErorCould not cast value of type 'RevisionApp.AlmostViewController'
(0x1055d58c0) to 'UINavigationController' (0x107669f18).
代码如下:
对于第一个问题,当使用嵌入导航控制器时,您不必在点击按钮时创建动作函数。导航控制器为你做。所以你需要做的事情:
- 使用故事板将函数
btnTapped
与按钮断开连接。
- 删除或注释函数
btnTapped
(你不需要它)。
问题出在第 18 行。您正在尝试将 AlmostViewController
转换为 UINavigationController
。直接这样访问,
let detailController = segue.destination as! AlmostViewController
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
让 nextViewController = storyBoard.instantiateViewControllerWithIdentifier("ViewController2") 作为 NextViewController
self.presentViewController(nextViewController, animated:true, completion:nil)
我正在尝试将一些值从一个 viewcontroller 发送到另一个。 (全部嵌入在 NavigationController 中)。我可以用法线 viewcontrollers 进行 segue,所以总的来说我理解 segue 的想法。我必须以两种不同的方式做到这一点,但遇到了两个不同的问题。
第一种方式,segue 做对了,但是"two times"。我的意思是在 segue(我想要的)之后,同一个控制器有另一个 segue,但没有导航控制器,也没有我要发送的数据。最后 viewcontroller 上的 "back" 按钮返回到 AlmostViewController。
代码如下:
第二种方式,什么都没发生,
ErorCould not cast value of type 'RevisionApp.AlmostViewController' (0x1055d58c0) to 'UINavigationController' (0x107669f18).
代码如下:
对于第一个问题,当使用嵌入导航控制器时,您不必在点击按钮时创建动作函数。导航控制器为你做。所以你需要做的事情:
- 使用故事板将函数
btnTapped
与按钮断开连接。 - 删除或注释函数
btnTapped
(你不需要它)。
问题出在第 18 行。您正在尝试将 AlmostViewController
转换为 UINavigationController
。直接这样访问,
let detailController = segue.destination as! AlmostViewController
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
让 nextViewController = storyBoard.instantiateViewControllerWithIdentifier("ViewController2") 作为 NextViewController self.presentViewController(nextViewController, animated:true, completion:nil)