UIPickerView prepareForSegue

时间:2013-01-04 15:19:49

标签: objective-c xcode twitter ios6 accounts

我正在创建一个客户端。选择一个帐户,帐户通过(通过segue)。想知道它是如何做到的。 obs **数据传递是用户选择的选择器的一个数组(帐户)。

这将返回选择器视图:

-(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { 
  ACAccount *acct = [arrayOfAccounts objectAtIndex:row]; 
  return [acct username];
}

必须将用户选择的选项(数组)传递给另一个视图以用作帐户(Twitter)

我设法用TableView做了一次(但我认为这个可怕的界面)并且决定进行pickerview。仅在传递此数据时(下面)的问题不等于tableview

2 个答案:

答案 0 :(得分:0)

我希望我能帮到你,你的描述/拼写有点模糊。

您需要实现此委托方法:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component

我不建议在选择器视图上选择时切换视图,如果使用按钮执行segue则更好。 您可以将选择保存在私有属性中,并在prepareForSegue:中将其用于将其传递给其他视图控制器。

答案 1 :(得分:0)

您是否正在使用Segue将数据传递到下一个视图?我认为那将是最好的方式。从pickerview传递数据时,您可以在segue中执行此操作

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{

    // Make sure your segue name in storyboard is the same as this line
    if ([[segue identifier] isEqualToString:@"moreinfosegue"])
    {
        // Get reference to the destination view controller
        NextViewController *nextViewC = [segue destinationViewController];
        // Pass any objects to the view controller here, like...
        ACAccount *acct = [self.arrayOfAccounts objectAtIndex:[_yourPickerView selectedRowInComponent:0]];

        [nextViewC  setACAccountValueInOtherView:acct];

    }
}

请记住,selectedRowInComponent设置为您从UIPickerView获取的任何组件。

我希望这会有所帮助。