ios如何确定uibarbuttonitem是否被推/选?

时间:2012-08-16 19:52:00

标签: ios uipickerview uibarbuttonitem

我需要根据[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全部,它会切换并加载,但不是按下选择按钮时。

这是怎么做到的?

2 个答案:

答案 0 :(得分:2)

你只需要添加一个目标吗?或者我错过了什么?

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"My Bar Button" style:UIBarButtonItemStyleBordered target:self action:@selector(MYMETHOD)];

答案 1 :(得分:0)

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
在选择器视图中选择特定对象时调用

假设_pickerview是选择器视图的数据源,您只需根据所选索引加载您想要的视图。

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

你的问题很混乱,不清楚你想做什么。如果这可以很好地回答你的问题或澄清你想要实现的目标