2012-04-09 47 views
0

我有一个tabBarApplication,我有作为有每个选项卡上UINavigation模板的模板。建立在一个UIViewController一个UINavigation控制器rootView

我想使用的样品(那种),并将其转换成一个单一的UIViewController在诺特尔应用。我已经提交了两段代码,第一段是我的模板,而后者是我正在做的。任何人都可以给我一些提示或帮助如何做到这一点?我不断收到错误,但它们对我来说没有意义,因为tabBarApp不需要声明viewController。

第一个代码(例子):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
[self setupFetchedResultsController]; 

if (![[self.fetchedResultsController fetchedObjects] count] > 0) { 
    NSLog(@"!!!!! ~~> There's nothing in the database so defaults will be inserted"); 
    [self importCoreDataDefaultRoles]; 
} 
else { 
    NSLog(@"There's stuff in the database so skipping the import of default data"); 
} 

// The Tab Bar 
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController; 

// The Two Navigation Controllers attached to the Tab Bar (At Tab Bar Indexes 0 and 1) 
UINavigationController *personsTVCnav = [[tabBarController viewControllers] objectAtIndex:0]; 
UINavigationController *rolesTVCnav = [[tabBarController viewControllers] objectAtIndex:1]; 
return YES; 
} 

第二个代码(我试图做):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
[self setupFetchedResultsController]; 

if (![[self.fetchedResultsController fetchedObjects] count] > 0) { 
    NSLog(@"!!!!! ~~> There's nothing in the database so defaults will be inserted"); 
    [self importCoreDataDefaultRoles]; 
} 
else { 

UIViewController *mainViewController = (UIViewController *)self.window.rootViewController; 

UINavigationController *readingsTVCnav = [[mainViewController viewController] objectAtIndex:0]; 

// Override point for customization after application launch. 
return YES; 
} 

代码的取件都涉及到其已设定核心数据起来和工作。 这样做的原因的变化是,我想有设置为初始画面,而不是tabBarConfiguration的平面图控制器。

干杯杰夫

编辑:我添加了图像的清晰度

enter image description here

+0

我不清楚你的新的导航将如何工作。你的初始视图控制器会成为导航控制器吗? – jonkroll 2012-04-09 23:05:52

+0

是的,我正在使用故事板,并且在UINavigation控制器中嵌入了ViewController。 – 2012-04-09 23:12:14

+0

嵌入式ViewController中有什么?你将如何导航到你的应用程序的其他部分? – jonkroll 2012-04-09 23:17:41

回答

1

从你的描述,并在你的形象描绘什么,你有导航控制器设置为应用程序的根视图控制器。所以,你可以在你的应用程序委托的didFinishLaunchingWithOptions:方法来访问它(如果需要),如下所示:

UINavigationController *navController = (UINavigationController *)self.window.rootViewController; 

虽然您的应用程序,我不认为有需要从应用程序委托引用导航控制器任何理由。您可以通过故事板处理所有需要的设置(除了代码数据代码,您说的代码数据代码已经工作)。

在你nagivationController的根的viewController(具有所有的按钮),你应该从每一个按钮,你的故事板approperiate的viewController成立了SEGUE。确保设置为“push”,以便将视图控制器推到navigationController的导航堆栈上。如果你需要的时候SEGUE发生子视图控制器做任何特殊的设置,您可以实现prepareForSegue:方法是这样的:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"ShowMyViewController"]) { 

     MyViewController *vc = (MyViewController*)segue.destinationViewController;  
     vc.title = @"My Title"; 
     vc.someProperty = @"Some Value"; 
    } 
} 

你可以(也应该)确定在故事板上每个塞格斯的具有唯一标识符,以便在调用此方法时可以识别它们。

+0

嗨jonkroll的图像,感谢您的答案 - 当我回家我有另一个去它,并张贴我的:-)干杯结果 – 2012-04-10 00:57:13

相关问题