我用xCode创建了一个Master / Detail应用程序,对此几乎没有改变。在MasterViewController的prepareForSegue中,我添加了此内容以尝试在局部视图控制器中的标签中放置一些文本

MMDetailViewController *detailVC = [segue destinationViewController];
detailVC.testdetail.text = @"test";

我还向情节提要上的detailViewController添加了一个标签,然后控制/拖动到detailViewController来连接它们。
@property (strong, nonatomic) IBOutlet UILabel *testdetail;

因此,当我在prepareForSegue中设置文本时,我希望一旦在模拟器上运行代码,文本就会显示在标签中。但是,它没有显示。你能解释为什么吗?

最佳答案

这是因为您无法在加载UILabel之前对其进行更新...
因此,您需要做的是:

设置Nsstring并更新其值,然后在viewDidLoad中更新您的Label。

在您的detailViewController.h中添加

@property (strong, nonatomic)NSString *testString;

然后在viewDidLoad中的detailViewController.m中:
- (void)viewDidLoad
{
[super viewDidLoad];
self.testdetail.text = testString;
}

在您的masterViewController中:
MMDetailViewController *detailVC = [segue destinationViewController];
detailVC.testString = @"test";

就是这样,它现在应该可以工作了:)
快乐编码

关于ios - 从prepareForSegue的详细信息 View 中设置属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23585676/

10-13 04:17