我是开发iOS程序的新手,我需要你的帮助。
当我点击按钮时,我的代码检查一个条件,如果条件为真,我想访问下一个UIViewController
传递数据prepareForSegue
,但条件是{{ 1}},我不想访问下一个FALSE
并保持当前的VC
。
我怎么能这样做?
当我点击我的按钮时,我会直接访问下一个VC
,无论VC
中的代码是什么。是否可以阻止访问?
我尝试在按钮上编码
IBAction
答案 0 :(得分:1)
其他答案应该有效,但它们忽略了segues的全部要点:你不必手动设置按钮上的动作,如segues。相反,您应该覆盖- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender
选择器。
为此,您需要从Interface Builder中为您的segue提供一个标识符,然后在您的父ViewController中添加此代码:
- (BOOL)shouldPerformSegueWithIdentifier:(NSString*)identifier sender:(id)sender
{
if ([identifier isEqualToString:@"MyIdentifier"])
{
return someCondition;
}
else return YES;
}
答案 1 :(得分:0)
- (IBAction)lancepartie:(id)sender {
BOOL someConditionHasBeenMet = NO;
// check condition
if (someConditionHasBeenMet) {
// push view controller
} else {
// nothing
}
}
答案 2 :(得分:0)
试试这段代码
- (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"]) {
}
}