如何停止按钮
我是新手开发iOS程序,我需要你的帮助。如何停止按钮
当我按一下按钮,我的代码检查一个条件,如果条件是真的,我想访问到下一个UIViewController
传递数据与prepareForSegue
,但如果条件FALSE
,我不想访问到下一个VC
,并保持当前VC
。
我该怎么做?
当我点击我的按钮,我直接访问下一个VC
,无论代码IBAction
。是否有可能阻止访问?
我尝试代码上的按钮
- (IBAction)lancepartie:(id)sender {
...
- (IBAction)lancepartie:(id)sender {
BOOL someConditionHasBeenMet = NO;
// check condition
if (someConditionHasBeenMet) {
// push view controller
} else {
// nothing
}
}
//推视图控制器我怎么能这样做?对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"]) {
}
}
我如何编程以“不切换控制器”? – user3277279
如果你的条件是错误的,在下面的代码中什么都不会发生。只是不要在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;
}
显示整个方法请 –
没什么用处......这只是我的条件。 – user3277279
你有两个segue和这个动作连接到故事板上的按钮吗? – Gavin