我创建了一个新的Monotouch iOS故事板项目。我添加了两个屏幕,一个带有一个按钮。我已将按钮链接到第二个屏幕,并带有推送segue。这一切都按预期工作。我现在所做的是在按钮内添加一个内部事件方法,我试图添加一些逻辑来说明是否应该执行segue。
partial void LoginButton_click(UIButton sender)
{
Random r = new Random();
if (r.Next(1,2000000) == 33432)
{
this.PerformSegue("Push", this);
} else {
//Do not perform segue
}
}
我在网上看过很多关于如何使用PerformSegue方法的参考资料,但如果逻辑不正确,我无法找到如何在故事板中停止segue。我不应该在故事板中创建一个segue然后以编程方式进行吗?这似乎消除了使用故事板的巨大好处,但看看一切是如何组合在一起的。
答案 0 :(得分:1)
您可以实施UIViewController
方法shouldPerformSegue:withIdentifier:
当触发segue时调用此方法,您可以返回一个布尔值来指示是否应该执行segue。
使用这种方法,您可以将segue与按钮保持连接,并且您不需要touchUpInside动作处理程序。
答案 1 :(得分:0)
我不熟悉monotouch或xamarin,但请确保通过视图控制器而不是按钮连接segue。
据我所知,你不能停止一个开始的segue。您所能做的就是在赛格内捕捉事件。正确的做法是确保你要么调用它,要么不调用它。
如果以下代码段在每个场景中执行segue,则segue与按钮的触摸事件相关联,并在每次触摸按钮时触发。
This question & answer在Xcode / Objective-C中解决了这个完全相同的问题。