用UIViewreplaceUINavigationControllers NavigationBar

我正在开发具有多个皮肤的应用程序,我有如何实现这个困境。

其中一个解决scheme是为每个皮肤分别提供不同的nib文件,并根据当前select的皮肤加载它。 问题是,我不能编辑导航栏的导航控制器(我的应用程序使用),我必须改变它的背景图像和后退button图像等。我想出了一个想法隐藏这个导航栏上每一个屏幕并将其replace为界面生成器中的自定义UIView,这将作为导航栏和自定义后退button与IBActionpopup当前视图控制器,以便用户不会看到任何区别。

这种方法是可以接受的,如果我这样做,我会有在App Store中被拒绝的问题吗?

如果你select隐藏并用你自己的UIViewreplaceUINavigationBar,那么苹果就不会有问题。

不过,我可以告诉你,你将不得不花一些时间来复制一些UINavigationBar自然产生的视觉效果。

例如,当您按下/popup一个新的控制器时,您将看到导航栏标题将滑动并淡入淡出。 左边和右边的条形物品也是如此。

就我个人而言,我不会完全隐藏UINavigationBar,而是自定义它。 最后,这一切都取决于你想要什么,但默认情况下,UINavigationBar是相当可定制的。

你可以添加你自己的button,甚至整个UIViews作为左和右栏项目。 此外,您可以添加自己的UIView作为标题(用自己的标签,自定义字体或其他)或更改背景。

编辑:

要轻松定制整个应用程序中的外观,您可以inheritanceUINavigationController并创build您自己的CustomUINavigationController。 然后,在viewDidLoad方法,你可以改变任何你想要的导航栏,这将是整个应用程序可访问。

没办法,你在做什么是完美的。 这将工作,并没有办法将被拒绝从应用程序商店(只是基于这种方法)。 我也探索了几种提供皮肤的方法,你写的东西似乎是最简单的一些。 另外它的方式更容易在界面生成器中创buildUI元素,因此不同皮肤的单独的nib文件。

我这么自信地说:“因为我已经做了同样的事情和应用程序商店批准。

祝你好运。