BetterBaseClasses是抽象的基类,旨在被继承。
大多数视图控制器仅与一个 nib 或 storyboard 场景相关联。BetterBaseClasses允许您指定 identifier、bundle 和 storyboardName 作为类的一部分,这在大多数情况下更有意义。
这也使得创建和使用CocoaPod变得容易得多。
例如,您不需要调用initWithNibName: bundle:,这需要使用该 nib 的应用程序了解 nib 名称和 bundle,您可以简单调用类方法instanceFromNib。
BetterBaseClasses还提供了用于处理视图的便利方法。
将BetterBaseClasses添加到项目的最简单方法是使用CocoaPods。
只需将以下行添加到Podfile中:
pod 'BetterBaseClasses', '~> 1.0'
然后像平常一样运行pod install。
按照以下步骤进行手动安装:
将此存储库本地克隆到您的计算机上,或者按下载ZIP下载最新的master提交。
将BetterBaseClasses文件夹拖放到您的项目中。
删除BetterBaseClasses.h文件(它是作为库/CocoaPod包含时使用的公共头文件)。
而不是从子类继承UIViewController或UITableViewController,您应该分别从BaseViewController或BaseTableViewController子类继承。
(可选)重写commonInit,它由所有指定初始化器调用,以运行常见的设置代码。
(可选)重写类方法bundle、identifier或storyboardName。这允许您将 nib 名称或 storyboard 标识符直接指定在视图控制器中。
但是,在大多数情况下,您不需要重写这些,因为已经提供了合理的默认值(例如,nib 名称应与视图控制器的名称匹配等)。
instanceFromNib从 nib 实例化视图控制器,或者调用instanceFromStoryboard从 storyboard 场景实例化视图控制器。例如,
------ TestViewController.h ------
#import "BaseViewController.h"
@interface TestViewController : BaseViewController
@property (assign, nonatomic) NSUInteger exampleValue;
@end
------ TestViewController.m ------
#import "TestViewController.h"
@implementation TestViewController
- (void)commonInit {
[super commonInit];
_exampleValue = 42;
}
@end
您可以从名为 TestViewController.xib 的 nib 中实例化新的 TestViewController 如下所示
TestViewController *viewController = [TestViewController instanceFromNib];
Win. :]
还有用于处理视图的便利方法。有关更多详细信息,请参阅BaseView和BaseTableView的内置文档。
BetterBaseClasses可在MIT许可下使用(有关详细信息,请参阅LICENSE文件)。