Xcode Swift 3:计时器和 Segue 视图控制器错误
Posted
技术标签:
【中文标题】Xcode Swift 3:计时器和 Segue 视图控制器错误【英文标题】:Xcode Swift 3: Timer and Segue View Controller Error 【发布时间】:2016-10-30 06:16:33 【问题描述】:此代码在 ViewController 1 中。goToMainUI 分配给 ViewController 1 和 2 之间的 segue 连接 ID。此外,ViewController 2 的情节提要 ID 相同 (goToMainUI)。定时器完成后,出现错误,ViewControllers 不切换。有谁知道问题是什么?谢谢!
override func viewDidLoad()
super.viewDidLoad()
let timer = Timer.scheduledTimerWithTimeInterval(8.0, target: self, selector: #selector(timeToMoveOn), userInfo: nil, repeats: false)
func timeToMoveOn()
self.performSegue(withIdentifier: "goToMainUI", sender: self)
【问题讨论】:
错误说明了什么? 如果您想静音该表达式,请告诉我....我会更新代码... 代码已更新... 【参考方案1】:试试这个代码:
注意:代码在 Swift 3 中测试。
第 1 步:首先设置故事板 Segue Identifier
第 2 步:
let emptyString = String() // Do nothing
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
Timer.scheduledTimer(timeInterval: 8.0, target: self, selector: #selector(timeToMoveOn), userInfo: nil, repeats: false)
func timeToMoveOn()
self.performSegue(withIdentifier: "goToMainUI", sender: self)
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
if (segue.identifier == "goToMainUI")
let dest = segue.destination as! viewTwo // viewTwo is your destination ViewController
dest.emptyString = emptyString
print("Segue Performed")
在您的 ViewTwo 中添加上面的 viewDidLoad 方法。
var emptyString = String()
【讨论】:
感谢这完美的作品!不过有一件事。 segue.destination 为! ViewController 给出一条消息“'ViewController' 类型的表达式未使用”。 (我将 viewTwo 更改为 ViewController,即目标 viewcontroller 的名称)。有可能解决这个问题吗?以上是关于Xcode Swift 3:计时器和 Segue 视图控制器错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Xcode 8 和 Swift 3.0 中删除覆盖后准备 segue 崩溃
自定义幻灯片 Segue - Xcode 8.0 Swift 3.0
打印可变展开 Segue - Xcode 8.0 Swift 3.0
准备使用数组进行 Segue - Xcode 8.0 Swift 3.0
(Xcode 6 beta / Swift) performSegueWithIdentifier 在 segue 之前有延迟