私は6つのボタンを持っています。ユーザーが次の画面に移動する前に6つのボタンのいずれかを選択する必要があることを望んでいます6 つのボタンのいずれかをクリックすると、ユーザーは次の画面に移動できます。
-(IBAction)locationOneButtonAction{
// your stuff
_flag = YES;
}
-(IBAction)locationTwoButtonAction{
// your stuff
_flag = YES;
}
この問題の最善の解決策は、クラスのboolを宣言することだと思います(「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
}
}
これは、ボタンから次のビューへのセグエを描画できないことを意味します。ストーリーボードを使用している場合、これは、次のビューに移動するはずのボタンからセグエを描画できないことを意味します。むしろ、ビュー コントローラー アイコンから次のビューに描画する必要があります。次に、セグエを選択して名前を付け、上記の方法で名前を付けます。
また、各ボタンを次のビューに移動することを意味するかどうかもわかりません。その場合は、基本的に同じコードを使用できますが、コード [self performSegueWithIdentifier:@"segueIdentifier" を配置するだけです。送信者: 自分]; ボタンの動作中の行。
うまくいけば、これが役に立ちます。
最初に 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");
}