我目前正在我的视图控制器中实现子视图。在实现我的子视图之前,我的代码会查找导航标题然后决定输出是什么,这是我在下面提供的(工作正常)。我现在已经在原始视图控制器中实现了一个容器视图,我想要查找导航标题,例如_TitleLabel但我不确定我确定放在容器视图控制器上。
void OnCollisionEnter(Collision coll) {
if (coll.gameObject.CompareTag("Player")) {
isTouched = true; //isTouched means that the door collider has been touched
}
}
答案 0 :(得分:0)
我现在已经实现了一个容器视图,我希望根据主视图控制器中的标题填充某些信息
那么想想你在这里做什么。您正在尝试使用视图控制器标题将信息传递到此容器视图。正如我在评论中指出的那样,在视图中存储数据是个坏主意。视图控制器标题来自哪里?哪些对象可以访问该数据?
假设您的UI包含一个列出各种项目的表格,以及一个详细视图,只要用户点击表格中的特定行,就会显示更多信息。听起来您的容器视图是该细节显示的一部分。因此,当用户点击一行时,表视图控制器应该找出哪个行被点击。然后它从与抽头行对应的数组中抓取该项,并将该项传递给详细视图控制器(通常在-prepareForSegue:sender:
中)。详细视图控制器获取该项并使用它来设置自己的标题,可能在其-viewWillAppear
方法中。此时,它还可以将任何必要的数据(例如标题)传递到容器视图。
有时候人们用“告诉,不要问”这个短语来总结这种方法。也就是说,视图控制器应该向视图提供任何必要的数据,并且视图应该显示它给出的任何数据,但不应该从任何地方获取该数据。