我想创建自己的 UIStoryBoard 并强制系统使用它(受Jody 的回答启发)。
我该怎么做?
@interface MyStoryboard : UIStoryboard
未调用创建类。
你在正确的路径子类化UIStoryboard
:你现在需要做的就是将它插入你的应用程序。最简单的方法是在您的应用程序委托的application:didFinishLaunchingWithOptions:
方法中:
我的故事板.h
@interface MyStoryboard : UIStoryboard
-(id)instantiateViewControllerWithIdentifier:(NSString *)identifier;
@end
我的故事板.m
@implementation MyStoryboard
-(id)instantiateViewControllerWithIdentifier:(NSString *)identifier {
NSLog(@"Instantiating: %@", identifier);
return [super instantiateViewControllerWithIdentifier:identifier];
}
@end
MyAppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
UIStoryboard *storyboard = [MyStoryboard storyboardWithName:@"<identifier-of-your-storyboard>" bundle:nil];
self.window.rootViewController = [storyboard instantiateInitialViewController];
[self.window makeKeyAndVisible];
return YES;
}
使用此代码,您将看到NSLog
每次调用该instantiateViewControllerWithIdentifier:
方法时的调用。