iOS故事板

时间:2012-10-21 17:17:54

标签: ios storyboard uistoryboard

我有一个适用于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插座。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

当你在vc1的performSegue:时,vc2的视图层次结构尚未设置。执行此操作的常规方法是在vc2中具有一个属性,该属性在performSegue:期间暂时被赋予字符串。然后,此属性用于更新vc2的viewWillAppear:中的标签。

(当你说“作为一个测试时,我把'label1.text = @'屏幕2”;'代码放在vc2SubClass中但没有区别“我不确定会发生什么在那里。该代码放入什么方法?)