我想创建一个包含以下内容的模板视图控制器:
- 贯穿整个应用程序的导航栏
- 在整个应用程序中使用的标题
- 标准背景(视图控制器的背景应该在整个应用程序中相同)
- 在整个应用程序中使用的页脚
底线是我需要一个自定义视图控制器类,它有一个导航栏、一个页眉、一个页脚和一个背景。然后,我将在界面生成器中将所有视图类替换为此类。
好吧,是的,您将创建一个自定义视图控制器作为 UIViewController 的子类。你可能想对 UITableViewController 做同样的事情。假设您将它们命名为 myViewController 和 myTableViewController。
然后,您的界面构建器视图将分别引用此类或其子类。
BackgroundColor:
但是,视图控制器没有自己的背景颜色。他们的视图确实有背景颜色,并且视图控制器可以将其视图的背景颜色设置为某个常数值。确保视图层次结构中背景颜色应与一般背景相同的所有视图本身没有背景颜色。(或分别为清晰的颜色[UIColor clearColor]
:)
然后,您可以像这样在视图控制器中设置颜色:
self.view.backgroundColor = [UIColor colorWithRed:0.5 green:0.5 blue:0.5];
请记住,有更聪明的编码方式,而不是在代码中的许多地方硬编码值。
NavigationBar: 导航栏是导航控制器的一个属性。通常应用程序中只有一个导航控制器(除非它是基于标签栏的应用程序,否则可能会有更多)。因此,没有必要为了一个通用的自定义导航栏而对所有视图控制器进行子类化。
页眉和页脚: 坦率地说,我不确定你的意思。您可以参考表格视图的页眉和页脚。如果是这样,那么正如已经提到的,应用程序范围的超类“myTableViewController”可能是您的选择,它在应用程序中提供通用的页眉和页脚。
导航UINavigationController
栏是您的 viewController 将被添加到的一部分,因此这将自动成为它们的标准。
至于创建自定义视图控制器,您本质上是在问“我如何进行继承”,这超出了单个答案的范围。如果您进行谷歌搜索,那里有很多很好的教程。