我用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/