一些 `UIViewController` 和 `UINavigationController` 推行的令人烦恼的限制:用户按下后退按钮无法控制,个性化的视图控制器无法确定其所需的界面方向,而且与导航栏风格匹配的状态栏风格很容易遗漏,并且看起来很糟糕。
这些类添加了这些和其他可能有用的功能,到 `UIViewController`、`UITableViewController`、`UICollectionViewController`、`UITabBarController` 和 `UINavigationController`。其中一些功能解决上述“限制”,而另一些则是为了扩展这些子类的特定项目功能而添加的。
对于 `PXViewController`、`PXTableViewController`、`PXCollectionViewController` 和 `PXTabBarController`,您将获得以下功能
`PXNavigationController
` 提供以下功能:
- (NSUInteger)supportedInterfaceOrientations
{
// let the top view controller decide, since it's the one being displayed
return [[self topViewController] supportedInterfaceOrientations];
}
- (BOOL)prefersStatusBarHidden
{
return [[self topViewController] prefersStatusBarHidden];
}
- (UIStatusBarStyle)preferredStatusBarStyle
{
// view controllers get to decide because that actually makes sense.
return [[self topViewController] preferredStatusBarStyle];
}
有一个示例项目。它应该让你们了解我打算如何使用这些类,不过阅读头文件也是很有帮助的。要运行示例项目,首先克隆 repo,然后从 Example 目录运行 `pod install`。
有一些子类的奇奇怪怪的特点值得提及。
首先要注意的是:`UITabBarController` 子类有导航栏属性。人们不经常将导航堆栈放在标签页中,而不是将标签栏放在导航堆栈中吗?
简短答复:是的。我已经做了足够多的标签栏在导航堆栈中的版本,这值得。
长篇大论:几乎所有这些类都是围绕与 `UINavigationController` 和导航栏相关的限制展开的。所以如果你没有在一个导航控制器中用标签栏控制器,那么使用 `PXTabBarController
` 也没意义。
第二个问题:为什么后退按钮被强制为箭头形状?
简短答复:这就是现在所有孩子都在做的。
长篇大论:基本上我们为客户所做的或制作的所有设计都使用这个来作为后退按钮。通常,如果有人需要这些类提供的某些更高级的功能,他们也会使用标准箭头后退按钮(没有文字)。
PXViewController 通过 CocoaPods 提供。要安装它,只需在 Podfile 中添加以下行:
pod "PXViewController"
Daniel Blakemore,[email protected]
PXViewController 在 MIT 许可证下提供。有关更多信息,请参阅 LICENSE 文件。