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文件)。