2013-07-07 3 views
0

В настоящее время у меня есть приложение просмотра MasterDetail, к которому я бы хотел добавить панель вкладок. Я успешно добавил панель вкладок в главное табличное представление, и у меня есть представление таблицы, которое будет другой вкладкой. Это работает, но я задал вопрос:Внедрение MasterDetail ViewController в панель вкладок

Если я хочу, чтобы на другой вкладке был другой вид MasterDetail, я бы добавил контроллер SplitView в контроллер панели вкладок? Или я бы просто добавил контроллер табличного представления, поместил его в «Мастер», а затем добавил UIView и поместил его в подробности и вытолкнул все данные через segue?

Может быть, немой вопрос, но я пока не видел никаких ответов.

* EDIT *

Вот содержание моего AppDelegate.m до сих пор:

#import "AppDelegate.h" 
#import "LeftViewController.h" 
#import "RightViewController.h" 

@implementation AppDelegate 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController; 
    UINavigationController *leftNavController = [(UITabBarController *)splitViewController.viewControllers[0] viewControllers][0]; 
    LeftViewController *leftViewController = (LeftViewController *)[leftNavController topViewController]; 
    UINavigationController *rightNavController = [splitViewController.viewControllers objectAtIndex:1]; 
    RightViewController *rightViewController = (RightViewController *)[rightNavController topViewController]; 

    Player *selectedPlayer = [[leftViewController players]objectAtIndex:0]; 
    [rightViewController setPlayer:selectedPlayer]; 

    leftViewController.delegate = rightViewController; 
    return YES; 
} 

- (void)applicationWillTerminate:(UIApplication *)application 
{ 
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 
} 

@end 

ответ

0

Ваш UITabBarController должен быть контроллер представления корня в вашем приложении, то каждый из вкладки viewControllers могут быть UISplitViewController или что вам подходит.

Я бы показал вам картину раскадровки, но на ней слишком много материала, чтобы рассказать, что происходит!

Надеюсь, что это поможет.

- ОБНОВЛЕНИЕ -

Это не обязательно будет так просто, но вы должны быть в состоянии сделать то, что вы после с минимальной работой. Контроллеры просмотра можно перемещать без необходимости повторного добавления приложения. Возьмите следующий пример и посмотрите, поможет ли он. В принципе, вы будете нуждаться в UITabBarController как ваш контроллер представления корня, и вы можете добавить точку разделения на него:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 

    self.tabController = [[UITabBarController alloc] init]; 

    self.splitView = [[UISplitViewController alloc] init]; 

    self.tabController.viewControllers = @[self.splitView]; 

    self.window.rootViewController = tabController; 

    return YES; 
} 

Очевидно, что ваш код будет отличаться, но это базовый пример должен получить ваш идти в правильном направлении.

+0

Ну, мое приложение уже сделано наполовину, поэтому я не хочу начинать сначала. Было бы так же просто, как изменить UISplitViewController * splitViewConroller = (UISplitViewController *) self.window.rootViewController' на UITabBarController? Где идеальное место для размещения SplitViewController, если я переместил его из RootView? – CaptJak

+0

@CaptJak, обновил ответ. Надеюсь, это поможет. Дай мне знать, если! –

+0

извините, но теперь я просто смущен! Я добавил свой текущий AppDelegate.m, чтобы показать вам, с чем я сейчас работаю. Как будет работать представленный вами код? – CaptJak

Смежные вопросы