我有一个适用于iPad且使用情节提要的iOS单视图应用程序。
我有由xcode(vc1)创建的默认viewcontroller。一世
在其视图上放置一个按钮。
然后,我将一个新的视图控制器(screen2VC)拖到
故事板。
我还创建了一个新的视图控制器子类(vc2SubClass)
我通过身份检查器将screen2VC与此子类关联。
在screen2VC的视图上,我有一个标签。我控制将标签拖到
vc2SubClass创建一个插座。
我在vc1的按钮和vc2的按钮之间创建了一个序列。
在performSegue覆盖中,我有以下代码:
if ([segue.identifier isEqualToString:@"segue1"])
{
screen2VC* vc = [segue destinationViewController];
vc.label1.text = @"screen 2";
}
当我运行代码并按下按钮时,segue可以正常工作,并且两个视图之间的过渡也很好,但是screen2VC的标签从未设置为“ screen 2”。作为测试,我将
label1.text = @"screen 2";
代码放入vc2SubClass,但这没什么区别。似乎screen2VC和vc2SubClass之间仍然没有关联,即使前者是后者的子类,并且标签指向UILabel出口。有任何想法吗?
最佳答案
当您位于vc1的performSegue:
中时,尚未设置vc2的视图层次结构。正常的做法是在vc2中拥有一个属性,该属性在performSegue:
期间被临时赋予字符串。然后使用该属性更新vc2的viewWillAppear:
中的标签。
(当您说“作为测试时,我在vc2SubClass中放置了'label1.text = @“ screen 2”;“代码,但这没什么区别。”我不确定发生了什么。该代码将什么方法放入?)
关于ios - iOS Storyboard,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13000200/