每个 UIViewController 有多个“笔尖”

Posted

技术标签:

【中文标题】每个 UIViewController 有多个“笔尖”【英文标题】:Multiple 'nibs' per UIViewController 【发布时间】:2013-02-07 23:25:46 【问题描述】:

我正在使用情节提要,我希望两个 UIViewController 共享同一个控制器类。我已经完成了这项工作,并将我的 UIImageViews 连接到了他们的 IBOutlets。

当我打电话给[day3 setImage:[UIImage imageNamed: @"1.png"]];

它不会改变图像。这与它与另一个视图共享相同的控制器类有什么关系吗?

打开 UIImageViews 的这个视图是通过 push segue 从同一控制器类控制的另一个视图打开的。

【问题讨论】:

不,这应该不是问题,因为它们是不同的实例。尝试记录 days3 和 [UIImage imageNamed: @"1.png"] 以查看其中一个是否为 nil。 【参考方案1】:

您的问题是,虽然两个视图都使用相同的 UIViewController,但它们连接到它们的不同实例。让我们将 ViewController 称为 myViewController。当新视图被推送时,它实际上创建了一个全新的 myViewController。所以你现在在你的应用中有两个活动。 myViewController 的一个实例用于第一个视图,另一个用于第二个视图。因此,您不能直接从该控制器的其他视图实例中操作视图。

为了设置属性,您需要在 myViewController 的两个实例之间进行通信,就像它们是完全不同的 ViewController 一样。如果您需要进一步的帮助或解释,请告诉我。

【讨论】:

以上是关于每个 UIViewController 有多个“笔尖”的主要内容,如果未能解决你的问题,请参考以下文章

iOS 程序在单个 UIViewController 中使用多个 UITableView

UIViewController 作为其他视图控制器的子视图

在两个 UIViewController 堆栈之间转换

如何在 Swift 的 UIViewController 中添加多个集合视图?

单个 UIViewController 中的多个集合视图未调用 cellForItemAtIndexPath indexPath

过渡到已经包含的 UIViewController