如何停止按钮

问题描述:

我是新手开发iOS程序,我需要你的帮助。如何停止按钮

当我按一下按钮,我的代码检查一个条件,如果条件是真的,我想访问到下一个UIViewController传递数据与prepareForSegue,但如果条件FALSE,我不想访问到下一个VC,并保持当前VC

我该怎么做?

当我点击我的按钮,我直接访问下一个VC,无论代码IBAction。是否有可能阻止访问?

我尝试代码上的按钮

- (IBAction)lancepartie:(id)sender { 
... 
+0

显示整个方法请 –

+0

没什么用处......这只是我的条件。 – user3277279

+0

你有两个segue和这个动作连接到故事板上的按钮吗? – Gavin

- (IBAction)lancepartie:(id)sender { 
    BOOL someConditionHasBeenMet = NO; 
    // check condition 
    if (someConditionHasBeenMet) { 
     // push view controller 
    } else { 
     // nothing 
    } 
} 
+0

//推视图控制器我怎么能这样做?对newt VC的启动是自动的,不是? – user3277279

试试这个代码

- (IBAction)lancepartie:(id)sender 
{ 
    if(Your_Condition_Is_True){ 
     [self performSegueWithIdentifier:@"Your_Segue_Identifier" sender:sender]; 
    } 
    else { 
     //do not switch controller 
    } 
} 

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"Your_Segue_Identifier"]) { 

    } 
} 
+0

我如何编程以“不切换控制器”? – user3277279

+0

如果你的条件是错误的,在下面的代码中什么都不会发生。只是不要在else块中写任何代码。简单 – Pawan

其他的答案应该可行,但他们那种忽视塞格斯整点:你不应该在segues之类的按钮上手动设置动作。相反,您应该覆盖- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender选择器。

要做到这一点,你需要给你的赛格瑞从Interface Builder的一个标识符,那么在你的父视图控制器添加以下代码:

- (BOOL)shouldPerformSegueWithIdentifier:(NSString*)identifier sender:(id)sender 
{ 
    if ([identifier isEqualToString:@"MyIdentifier"]) 
    { 
     return someCondition; 
    } 
    else return YES; 
}