我目前有登录视图和应用程序视图,我已成功在登录视图上实现验证,我需要以编程方式切换到成功验证的应用程序视图。
我知道我可以在登录按钮中添加一个segue然后以编程方式调用它...
[self performSegueWithIdentifier:@"LoginSegue" sender:sender];
但是,只要单击按钮,就会触发这种情况(因为创建了segue附加到按钮)。我刚刚读到我应该创建一个按钮(并隐藏它),然后对segue进行编程调用 - 这看起来有点“错误”。
如何创建一个没有附加到任何特定UI事件的segue?
删除当前的segue。
将segue从原点视图控制器附加到目标(然后命名)。
现在,您的按钮按下方法应如下所示:
- (IBAction)validateLogin:(id)sender {
// validate login
if (validLogin) {
[self performSegueWithIdentifier:@"mySegue" sender:sender];
}
}
@IBAction func validateLogin(sender: UIButton) {
// validate login
if validLogin {
self.performSegueWithIdentifier("mySegue", sender:sender)
}
}
这里的关键是原始视图控制器应该是您要创建segue的那个,而不是按钮或任何其他UI元素。
就个人而言,我以这种方式挂钩我的所有segues,即使那些应该触发简单按钮推送而没有任何验证或逻辑背后的那些。通过按钮的方法调用它很容易。
并且,我通常在项目的某个地方将所有的segue名称声明为常量字符串。