将 UIViewController 的 UI 扩展到子 UIViewControllers
Posted
技术标签:
【中文标题】将 UIViewController 的 UI 扩展到子 UIViewControllers【英文标题】:Extend UIViewController's UI down to children UIViewControllers 【发布时间】:2015-09-15 05:28:07 【问题描述】:我有一个基本视图控制器BaseUIViewController
,它是从UIViewController
扩展而来的。我在这个 ViewController 的底部有两个 UIButtons
。基本上,我希望每个UIViewController
上的这两个按钮在我的应用程序中的同一位置。当我扩展BaseUIViewController
时,我在子视图控制器中看不到它们。
我也给按钮提供了 IBOutlets!
我是编程新手。请帮忙。这样继承不行吗?
【问题讨论】:
【参考方案1】:您可以创建一个UIViewControllerContainment。这个***'s 帖子详细解释了如何创建它并使其工作。同样,也看看这个***'s 帖子。这里是使用 childViewControllers 完成的。
【讨论】:
【参考方案2】:确保将这些按钮属性放在@interface
而不是@implement
中,只有@interface
中的属性可以在子类中看到。这是一个例子:
@interface BaseUIViewController
@property (nonatomic, weak) IBOutlet UIButton *button1;
@property (nonatomic, weak) IBOutlet UIButton *button2;
@end
【讨论】:
【参考方案3】:上面 MUNAHIL 回答的两种方式都是我认为最好的。如果您想以更基本的方式实现此目的,您可以执行以下操作。
在BaseUIViewController
中添加两个UIButton
s(以编程方式在viewDidLoad 或情节提要中)。如果需要,您可以先添加一个 UIToolBar,然后在其顶部添加按钮。
使其他视图控制器成为BaseUIViewController
的子类。
@interface SomeViewController: BaseUIViewController
现在,默认情况下,所有视图控制器都将具有这两个按钮。
【讨论】:
以上是关于将 UIViewController 的 UI 扩展到子 UIViewControllers的主要内容,如果未能解决你的问题,请参考以下文章
从父 UIViewController 类继承 UI 组件?
UICollectionView 未使用自定义 UIViewController 更新
将 UIViewController 添加到 UIScrollView