[PickerView didSelectRow:(NSInteger)row inComponent(NSInteger)component
]に基づいてビューをロードする必要があります
ハイライトと選択ロジックを理解しました。今必要なのは、ビューをロードするために選択ボタンが押されたかどうかを判断する簡単な方法です。
これは可能ですか?
例えば、
if ( /* select button is pressed */ )
{
//push selected view onto stack.
}
アップデート
ここでは、私が行っていることを確認できるようにコードを投稿します。私はほとんどすべてをnibファイルを介してセットアップしています。
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
/*
//do simple error checking to ensure nothing badly crazy happens
if(row > [mPickerMenuItems count])
{
NSLog(@"Row index is out of bounds of mPickerMenuItems length in [Overview pickerView:(UIPickerView*) didSelectRow:(NSInteger) inComponent:(NSInteger)]...bailing out");
return;
}
else if(row < 0)
{
NSLog(@"Row index is negative in [Overview pickerView:(UIPickerView*) didSelectRow:(NSInteger) inComponent:(NSInteger)]...bailing out.");
return;
}
*/
NSString* selected = [_pickerMenuItems objectAtIndex:row];
//NSLog(@"(in [Overview pickerView: didSelectRow]) resultLabel.text => %@", mResultLabel.description);
if([selected isEqualToString:@"My Profile"])
{
if ( /* select button is pressed */ )
{
//push view onto stack.
}
NSLog(@"My Profile has been selected");
}
else if([selected isEqualToString:@"Services"])
{
NSLog(@"Services has been selected");
}
else if([selected isEqualToString:@"Tools"])
{
NSLog(@"Tools has been selected");
}
else if([selected isEqualToString:@"Media"])
{
NSLog(@"Media has been selected");
}
else
{
NSLog(@"Nothing has been selected in [Overview pickerView: didSelectRow]");
}
}
アップデート2
混乱させて申し訳ありません。UIBarButtonItem
で強調表示されている項目に基づいて、が選択されたらすぐにビュースイッチを起動したいと思いUIPickerView
ます。私が持っている方法を使用しif-else
てすべてを実行するという自然な選択を行った場合、それは切り替わり、ロードされますが、選択ボタンが押されたときはそうではありません。
これはどのように行われますか?