【问题标题】:UIPickerView prepareForSegueUIPickerView prepareForSegue
【发布时间】:2012-12-19 01:14:59
【问题描述】:

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

这将返回选择器视图:

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

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

我设法用 TableView 做了一次(但我认为界面很糟糕)并决定制作pickerview。问题仅在于传递此数据(如下),不等于 tableview

【问题讨论】:

    标签: objective-c xcode twitter ios6 accounts


    【解决方案1】:

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

    你需要实现这个委托方法:

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

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

    【讨论】:

      【解决方案2】:

      您是否使用 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 获取的任何组件。

      我希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2015-07-02
        • 2016-12-12
        • 2013-06-16
        • 2012-06-02
        • 1970-01-01
        • 2023-04-04
        • 1970-01-01
        • 1970-01-01
        • 2012-12-18
        相关资源
        最近更新 更多