8

我想创建自己的 UIStoryBoard 并强制系统使用它(受Jody 的回答启发)。

我该怎么做?

@interface MyStoryboard : UIStoryboard未调用创建类。

4

1 回答 1

10

你在正确的路径子类化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:方法时的调用。

于 2012-12-27T19:01:11.807 回答