Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当按钮逻辑失败时,停止情节提要中的segue_C#_Ios_Xamarin.ios_Xamarin - Fatal编程技术网

C# 当按钮逻辑失败时,停止情节提要中的segue

C# 当按钮逻辑失败时,停止情节提要中的segue,c#,ios,xamarin.ios,xamarin,C#,Ios,Xamarin.ios,Xamarin,我已经创建了一个新的Monotouch iOS故事板项目。我添加了两个屏幕,其中一个屏幕上有一个按钮。我用一个按钮将按钮链接到第二个屏幕。这一切都按预期进行。我现在所做的是在按钮中添加一个内部事件方法,我试图添加一些逻辑来说明是否应该执行segue partial void LoginButton_click(UIButton sender) { Random r = new Random(); if (r.Next(1,2000000) == 3

我已经创建了一个新的Monotouch iOS故事板项目。我添加了两个屏幕,其中一个屏幕上有一个按钮。我用一个按钮将按钮链接到第二个屏幕。这一切都按预期进行。我现在所做的是在按钮中添加一个内部事件方法,我试图添加一些逻辑来说明是否应该执行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。我是否应该在故事板中创建一个片段,然后按程序进行呢?这似乎消除了使用故事板的一个巨大好处,尽管它可以看到所有东西是如何结合在一起的

我不熟悉monotouch或xamarin,但请确保segue是通过视图控制器而不是按钮连接的

据我所知,你不能阻止一个开始的赛格。你所能做的就是捕捉序列中的事件。正确的做法是确保你要么打电话,要么不打电话

如果下面的代码段在每个场景中都执行segue,那么segue将绑定到按钮的touch事件,并在每次触摸按钮时触发


在Xcode/Objective-C中解决了这个完全相同的问题。

您可以实现
UIViewController
方法

触发segue时会调用此方法,您可以返回一个布尔值以指示是否应执行segue


使用这种方法,您可以将segue与按钮保持连接,而不需要触碰内部操作处理程序。

啊,这是我的问题-谢谢!在什么情况下,您希望直接从按钮分离?当分离没有条件逻辑时。但对我来说,以后再更改是很烦人的,所以我会像这样连接所有的segue,即使button事件只是无条件地执行segue。