无法使用prepareForSegue:sender设置下一个视图的属性:

时间:2015-11-12 10:12:31

标签: ios objective-c uitableview segue

我正在使用Objective-C。我将segue从表视图单元格设置为新的视图控制器,我想使用此方法设置新视图控制器的属性:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString: @"detail"]){
        if([segue.destinationViewController isKindOfClass:[detailViewController class]]){
            detailViewController *detail = (detailViewController *)segue.destinationViewController;
            detail.label.text = @"QQQQQ";
    }
}

我已经将segue的标识符设置为@“detail”,并且还将标签代码与storyboard中的视图控制器相关联。但是当我在我的模拟器中运行它时,标签永远不会改变。

1 个答案:

答案 0 :(得分:0)

在调用<%= render 'layouts/header' %> <%= render 'layouts/navbar' %> <%= yield %> 时,目标视图控制器的插座尚未设置。

您需要做的是在prepareForSegue类中创建一个属性,如

detailViewController

然后在@property (copy, nonatomic) NSString *detailText;

prepareForSegue

以及detailViewController *detail = (detailViewController *)segue.destinationViewController; detail.detailText = @"QQQQQ"; detailViewController

viewDidLoad