通过 prepareForSegue 传递 NSString - Swift
Posted
技术标签:
【中文标题】通过 prepareForSegue 传递 NSString - Swift【英文标题】:Passing NSString via prepareForSegue - Swift 【发布时间】:2014-08-18 15:55:18 【问题描述】:我正在尝试使用 prepareForSegue 方法将字符串传递给我的模态视图控制器,如下所示。见下文:
这是我的初始视图控制器,我将在其中展示模态视图:
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!)
if segue.identifier == "newProject"
var newProjectVC:ModalViewController = ModalViewController()
newProjectVC = segue.destinationViewController as ModalViewController
newProjectVC.testString = "hello"
这是我的模态视图控制器:
import UIKit
class ModalViewController: UIViewController
var testString:NSString!
override func viewDidLoad()
println(self.testString)
这是它在故事板中的样子:
问题是它在这一行抛出异常:
newProjectVC = segue.destinationViewController as ModalViewController
我感觉这可能与导航控制器有关,但不确定,有什么想法吗?
【问题讨论】:
【参考方案1】:你说得对,destinationViewController 是导航控制器而不是 ModalViewController,试试看:
let navigationController = segue.destinationViewController as UINavigationController
let newProjectVC = navigationController.topViewController as ModalViewController
newProjectVC.testString = "hello"
【讨论】:
谢谢,但是我现在似乎在这一行再次抛出异常:let newProjectVC = navigationController.viewControllers[0] as NewProjectViewController。 请发布例外情况。 我已经编辑了我的帖子 - 它没有在日志中吐出任何有意义的东西 - 只是坚持上面的行。 查看我编辑的帖子我使用topViewController,如果它会崩溃尝试:navigationController?.topViewController 谢谢,我尝试了你的两个建议,但仍然导致抛出相同类型的异常以上是关于通过 prepareForSegue 传递 NSString - Swift的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 2 中通过“prepareForSegue”传递数据