1

[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てすべてを実行するという自然な選択を行った場合、それは切り替わり、ロードされますが、選択ボタンが押されたときはそうではありません。

これはどのように行われますか?

4

2 に答える 2

2

ターゲットを追加するだけですか?または、何か不足していますか?

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"My Bar Button" style:UIBarButtonItemStyleBordered target:self action:@selector(MYMETHOD)];
于 2012-08-16T19:54:05.537 に答える
0
- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 

ピッカービューで特定のオブジェクトが選択されたときに呼び出されます。

_pickerviewがピッカービューのデータソースであると仮定すると、選択したインデックスに基づいて、必要なビューをロードするだけで済みます。

if(indexPath.row == x){
//Code to bring up the view controller
}

あなたの質問は紛らわしく、あなたが何をしたいのか明確ではありません。それがあなたの質問にうまく答えるか、あなたが達成したいことは何であるかを明確にするなら

于 2012-08-16T20:13:08.870 に答える