-1

我有六个按钮,我希望用户在移动到下一个屏幕之前必须选择六个按钮中的任何一个,如果它没有选择任何一个,那么它不应该移动到下一个屏幕我已经阅读过使用 BOOL 标志,但这显示了我想要单击哪个按钮如果单击六个按钮中的任何一个,则用户可以移动到下一个屏幕

-(IBAction)locationOneButtonAction{
    // your stuff
    _flag = YES;
  }
 -(IBAction)locationTwoButtonAction{
// your stuff
_flag = YES;
 }
4

2 回答 2

2

我认为这个问题的最佳解决方案是为你的类声明一个布尔值(假设它被称为“ClickViewController”(所以在顶部)

@interface ClickViewController () {
   bool wasClicked;
}
...
-(IBAction)locationOneButtonAction{
// your stuff
   wasClicked = YES;
}

然后,当单击应该移动到下一页的按钮时,使用这样的方法。

-(void)nextPageClicked{
   if (wasClicked){
       [self performSegueWithIdentifier:@"segueIdentifier" sender: self];
   } else {
      // do something else here, like tell the user why you didn't move them
   }
}

这意味着您不能将 segue 从按钮绘制到下一个视图。如果您使用情节提要,这意味着您不能从应该将其移动到下一个视图的按钮中绘制 segue,而是应该将其从视图控制器图标绘制到下一个视图。然后选择segue,给它命名,用上面的方法加上名字。

我也不确定你的意思是不是想让每个按钮移动到下一个视图,如果是这样,你可以使用基本相同的代码,但只需将代码 [self performSegueWithIdentifier:@"segueIdentifier"发件人:自己]; 按钮的作用线。

希望这会有所帮助。

于 2012-09-04T04:21:34.953 回答
0

最初添加 BOOL _flag; int curIndex; 在 .h 文件中。

现在首先添加 _flag = FALSE; 在 viewDidLoad 方法中,因为它表示没有单击按钮。

使每个按钮的 userInteractionEnabled 能够单击并向每个按钮添加标签。

现在在每次单击按钮的操作方法中执行以下操作:

(IBAction)locationOneButtonAction:(id)sender{
   curIndex = [sender tag]; //which button clicked
   // your stuff
   _flag = TRUE;
}
-(IBAction)locationTwoButtonAction{
curIndex = [sender tag]; //which button clicked
// your stuff
_flag = YES;
}
........
........

现在如果单击按钮,请像这样检查:

if(_flag)
{
   NSLog(@"Button clicked with tag: %d",curIndex);
}
else
{
  NSLog(@"Not any Button clicked");
}
于 2012-09-04T04:22:13.533 回答