代码之家  ›  专栏  ›  技术社区  ›  RickiG

uinavigationController子类化的步骤

  •  7
  • RickiG  · 技术社区  · 14 年前

    我想对uinavigationController进行子类化,以获得关于控制器外观的更多自由。

    我有一些不同的部分,酒吧,按钮,文字等图形。 看着uinavigationcontroller头文件,我没有得到什么帮助,我不知道从哪里开始。

    我以前从未对uikit组件进行过子类化/重写,这看起来有点像在玩夏洛克福尔摩斯。

    方法是什么?

    我怎么知道要覆盖什么才能让一个特定的图形“注入”到正确的位置?

    我是否需要对uinavigationbar、uibarbuttonitem等进行子类化以获得完整的自定义外观?

    我怎么知道苹果批准的某些事情是否是禁止的?

    希望有人能给我指明正确的方向,我只能找到改变控制器小部分的例子,而不是通过子类化的完全定制。 我是不是走错了路?

    谢谢)

    2 回复  |  直到 10 年前
        1
  •  8
  •   Alex Zavatone    10 年前

    不应扩展uinavigationController。

    从iOS 6开始,此信息已过时。 从Xcode 5文档: 您通常按原样使用这个类,但在iOS6和更高版本中,您可以通过子类定制类行为。

    原始过时信息如下:

    从文档中:

    uinavigationController类实现一个专门的视图控制器,用于管理分层内容的导航。此类不用于子类化。相反,在希望应用程序的用户界面反映内容层次结构的情况下,您可以使用它的实例。

    您可能需要考虑创建类别或uinavigationbar的子类,并可能创建用于创建uibarbuttonities的自定义uibuttons。

    每当处理从uiview扩展的ui组件时,您应该考虑做的是子类化和重写

    - (void)drawRect:(CGRect)rect
    

    在StackOverflow或苹果官方文档网站上有很多例子。

        2
  •  52
  •   Niklas Berglund sheltrinec    10 年前

    现在,您可以将uinavigationController子类化,请参见更新的文档:

    uinavigationController类实现一个专门的视图控制器,用于管理分层内容的导航。这个导航界面可以有效地显示您的数据,也可以让用户更容易地导航这些内容。这个类通常按原样使用,但在iOS6和更高版本中可能是子类。

    UINavigationController Class Reference