当按钮逻辑失败时停止故事板中的 segue
Posted
技术标签:
【中文标题】当按钮逻辑失败时停止故事板中的 segue【英文标题】:Stop segue in storyboard when button logic fails 【发布时间】:2014-06-11 11:36:32 【问题描述】:我创建了一个新的 Monotouch ios 故事板项目。我添加了两个屏幕,一个带有按钮。我已经通过 push 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。我不应该在情节提要中创建一个转场然后以编程方式进行吗?这似乎消除了使用故事板的巨大好处,尽管可以查看所有内容如何组合在一起。
【问题讨论】:
【参考方案1】:可以实现UIViewController
方法shouldPerformSegue:withIdentifier:
触发segue时调用此方法,您可以返回一个布尔值来指示是否应该执行segue。
使用这种方法,您可以保持 segue 连接到按钮,并且不需要 touchUpInside 操作处理程序。
【讨论】:
【参考方案2】:我不熟悉 monotouch 或 xamarin,但请确保 segue 是通过视图控制器而不是按钮连接的。
据我所知,您无法停止开始的转场。您所能做的就是在 segue 中捕获事件。正确的做法是确保您要么调用它,要么不调用它。
如果以下代码 sn-p 在每个场景中执行 segue,则 segue 与按钮的触摸事件相关联,并在每次触摸按钮时触发。
This question & answer 在 Xcode/Objective-C 中解决了同样的问题。
【讨论】:
啊,那是我的问题 - 谢谢!在什么情况下你想直接从按钮中分离出来? 当segue没有条件逻辑时。但对我来说,稍后更改很烦人,所以即使按钮事件只是无条件地执行 segue,我也会像这样连接所有 segue。以上是关于当按钮逻辑失败时停止故事板中的 segue的主要内容,如果未能解决你的问题,请参考以下文章
IOS开发。如何通过 segue 连接不同故事板中的两个场景