我有一个适用于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/

10-13 04:29