我有一个适用于iPad的iOS单视图应用程序并使用故事板。
我有xcode(vc1)创建的默认viewcontroller。一世 在其视图上放置一个按钮。
然后我将一个新的视图控制器(screen2VC)拖到了 故事板。
我还创建了一个新的视图控制器子类(vc2SubClass)
我通过身份检查器将screen2VC关联到此子类。
在screen2VC的视图中,我有一个标签。我控制 - 将标签拖到上面 vc2SubClass创建一个插座。
我在vc1的按钮和vc2的按钮之间创建了一个segue。
在performSegue覆盖中,我有以下代码:
if ([segue.identifier isEqualToString:@"segue1"])
{
screen2VC* vc = [segue destinationViewController];
vc.label1.text = @"screen 2";
}
当我运行代码并按下按钮时,segue在两个视图之间工作和转换就好了,但是screen2VC的标签从未设置为“屏幕2”。作为测试,我将label1.text = @"screen 2";
代码放入vc2SubClass,但这没有任何区别。似乎screen2VC和vc2SubClass之间仍然没有关联,即使前者是后者的子类,标签指向UILabel插座。
有什么想法吗?
答案 0 :(得分:1)
当你在vc1的performSegue:
时,vc2的视图层次结构尚未设置。执行此操作的常规方法是在vc2中具有一个属性,该属性在performSegue:
期间暂时被赋予字符串。然后,此属性用于更新vc2的viewWillAppear:
中的标签。
(当你说“作为一个测试时,我把'label1.text = @'屏幕2”;'代码放在vc2SubClass中但没有区别“我不确定会发生什么在那里。该代码放入什么方法?)