2012-04-16 113 views
1

我想在我的项目中使用这个ECSlidingViewController。来自链接的示例应用程序使用故事板,但我想从xib加载全部。 我必须在应用程序中实现:didFinishLaunchingWithOptions:执行此操作吗?从示例应用程序ECSlidingViewController从XIB加载

代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    ECSlidingViewController *slidingViewController = (ECSlidingViewController *)self.window.rootViewController; 
    UIStoryboard *storyboard; 

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { 
    storyboard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil]; 
    } else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    storyboard = [UIStoryboard storyboardWithName:@"iPad" bundle:nil]; 
    } 

    slidingViewController.topViewController = [storyboard instantiateViewControllerWithIdentifier:@"FirstTop"]; 

    return YES; 
} 

回答

1

而不是使用故事板来获得的UIViewController的实例,你可以从一个笔尖实例吧:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    ECSlidingViewController *slidingViewController = [[ECSlidingViewController alloc] init]; 

    FirstTopViewController *firstTop = [[FirstTopViewController alloc] initWithNibName:@"FirstTop" bundle:nil]; 
    slidingViewController.topViewController = firstTop; 

    self.window.rootViewController = slidingViewController 

    return YES; 
} 
+1

如果你尝试上面的代码,你会得到“应用程序预计将有在应用程序启动的最后一个根视图控制器”在Xcode – fyasar 2012-05-15 21:08:00

+0

我编辑我的回答错误不是故事板使用 – 2013-11-16 19:03:11

0

尝试这一点,在我的ENV工作。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    self.initialViewController = [[InitialViewController alloc] initWithNibName:@"InitialViewController" bundle:nil]; 
    self.window.rootViewController = self.initialViewController; 

    ECSlidingViewController *slidingViewController = (ECSlidingViewController *)self.window.rootViewController; 
    FirstViewController *firstController = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil]; 
    slidingViewController.topViewController = firstController; 

    [self.window makeKeyAndVisible]; 
    return YES;  
} 

,也不要忘了添加

[self.slidingViewController setAnchorRightRevealAmount:280.0f]; 

到您的firstviewcontroller的viewWillAppear中的方法。

好运

+0

这是不正确不起作用。它说***终止应用程序由于未捕获的异常'NSInvalidArgumentException',原因:'*** - [__ NSArrayM insertObject:atIndex:]:object can not be nil' – nithinreddy 2013-11-07 08:30:39