2013-08-22 3 views
0

У меня есть старый проект, который имеет представление, реализованное как xib. Представления - это контроллер с вкладкой.Создание раскадровки в качестве TabBarItem

Теперь я хочу добавить новый UITabBarItem, но я хочу, чтобы этот новый элемент не базировался на основе xib, а на Storyboard. Смысл, я хочу использовать раскадровку только для содержимого этого элемента табуляции и оставлять остальную часть приложения такой, какой она есть.

я сделал следующее:

  • создана новая раскадровка
  • создал новый ViewController, который должен быть обертка для раскадровки
  • тогда я изменил лежащую VC в IB части вкладки в новый VC

Но как мне теперь идти? Я попытался это сделать InitialViewController ViewController из вкладки:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) 
{ 
    UIStoryboard *financeStoryboard = [UIStoryboard storyboardWithName:@"WS_Finanzierung_Storyboard_iPhone" bundle:nil]; 
    UIViewController * initialViewController = [financeStoryboard instantiateInitialViewController]; 

    [self presentViewController:initialViewController animated:YES completion:nil]; 
} 
return self; 
} 

Но это не работает (сбой еще ..).

В: Это правильный способ сделать это в любом случае? Есть ли наилучшая практика?

Заранее спасибо

ответ

3

попробовать это ..

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 
    UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil]; 
    UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 
    UIViewController *viewController3 = [[StoryViewController alloc] init]; 
    UIStoryboard *tableViewStoryboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil]; 
    viewController3 = [tableViewStoryboard instantiateViewControllerWithIdentifier:@"newTab"]; 
    self.tabBarController = [[UITabBarController alloc] init]; 
    self.tabBarController.viewControllers = @[viewController1, viewController2, viewController3]; 
    self.window.rootViewController = self.tabBarController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

Присвоить раскадровка идентификатор, как этот -> enter image description here

и снимите флажок является первоначальный вид контроллер -> enter image description here

Выход будет таким:

enter image description hereenter image description here

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