【问题标题】:How to send some value to another view controller when i select cell?当我选择单元格时如何向另一个视图控制器发送一些值?
【发布时间】:2013-11-07 18:33:15
【问题描述】:

我有两个视图控制器:MainScreenViewControllerTargetScreenViewController

MainScreenViewController 我有UITableView 带有自定义单元格,在TargetScreenViewController 我有我需要更改的标签。

我需要获取一些值,例如索引路径,并将其传递给TargetScreenViewController,并根据该值更改标签。

我已经在单元格中的 Triggered Segues 中设置了 push segue,但是我怎样才能传递一些值并将其传递到那里?

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    TargetView *target = [[TargetView alloc]initWithNibName:@"TargetView" bundle:nil];

    NSString *data = @"Success";

    target.incomingData = data;

}

在目标视图中:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.mLabel.text = self.incomingData;
}

但标签为空白 =[

【问题讨论】:

标签: ios objective-c uistoryboardsegue


【解决方案1】:

试试这个.....

1.在目标视图控制器中创建一个属性。

2.

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
      targetviewcontroller * obj = create object here .
      obj.property = dataToBeSent ;

      ---------------
}

然后您将通过访问属性获取数据

【讨论】:

  • 没有帮助 =( 打开目标视图后obj.property 中没有任何内容
  • 你能不能 NSLog 值 self.incomingData ,这样我们就可以确定我们是否正在获取数据。
  • 好的,就是这样:2013-11-07 12:17:47.858 test_002[9469:a0b] (null)
  • 然后只需将另一个 NSlog 放入 tableview:didSelectRowAtIndexPath 以确保我们获得所需的值或获得 null 。
  • 这里是2013-11-07 12:28:18.118 test_002[10065:a0b] in didSelectRowAtIndexPath Success 2013-11-07 12:28:18.122 test_002[10065:a0b] in viewDidLoad (null)
【解决方案2】:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    Class *yourObject=[self.arr objectAtIndex:indexPath.row];

    TargetView *vc=[[TargetView alloc] initWithNibName:@"TargetView" bundle:nil];

    vc.object=yourObject; //Create a p

    [self.navigationController pushViewController:vc animated:YES];

}

在您的TargetView

-(void)viewDidLoad{

   self.lbl.text=self.object.value;

}

【讨论】:

  • 如果我这样做会粉碎[self.navigationController pushViewController:vc animated:YES];
【解决方案3】:

您可以使用对象发出通知和发布通知。您需要发送到第二个控制器的对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    相关资源
    最近更新 更多