这可能是一个简单的问题,但经过反复试验,我无法获得我想要的结果。我有一个带有4个选项卡的标签栏控制器,它在视图之间传递一个对象(NSString)。直到第二次点击后,我通过的字符串才会显示在标签上。我的意思是在视图中我有字符串“name”,当我去查看B时,我有一个标签从视图A发送的字符串中获取其文本,遗憾的是,这并没有显示出来。当我去看C时标签显示,当我回到视图B时,标签已被填充。如果我在查看B之前首先查看C,也会发生同样的情况。这是我的代码:
查看控制器:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController: (UIViewController *)viewController
{
self.secondViewController = (StudentViewController *) [tabBarController.viewControllers objectAtIndex:2];
self.secondViewController.stName = studentName;
self.thirdViewController = (TeacherViewController *) [tabBarController.viewControllers objectAtIndex:1];
self.thirdViewController.stName = studentName;
}
查看B控制器(其他视图设置相同):
.h文件
@property (nonatomic, strong) NSString *stName;
.m文件
-(void)viewWillAppear:(BOOL)animated {
studentName.text = stName;
[super viewWillAppear:animated];
}
我尝试在视图上添加这个加载方法,但没有运气。有什么想法吗?谢谢你的帮助!
答案 0 :(得分:1)
我不是专家,但是从文档中我不清楚didSelectViewController甚至应该在视图出现之前被调用。为什么不尝试使用shouldSelectViewController?