2012-02-21 5 views
1

Я хотел бы спросить, можно ли отобразить контроллер tabbar после того, как я показал один контроллер вида. Я видел много учебников о tabbarcontroller, но все они были положить в AppDelegate используя следующую строку:Контроллер таблеток после отображения одного контроллера вида

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ 
[self.window addSubview:tabController.view]; 
[self.window makeKeyAndVisible]; 
return YES;} 

Что я хотел бы сделать, это показать один вид контроллера первый:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{  
     self.window.rootViewController = self.viewController; 
     [self.window makeKeyAndVisible]; 
     return YES; } 

и после отображения viewController пользователь должен будет нажать кнопку, чтобы показать другое представление с помощью TABBARCONTROLLER. Если это возможно, как мне это сделать?

ответ

2

Да, вы можете ... в своем первом контроллере после того, как какое-то задание будет завершено, затем нажмите контроллер табуляции.

Пример: -

Если у вас есть TabBarController класс по югу причислять UITabBarController.

- (void) doSomeJob 
{ 
    if(true) 
    { 
    TabBarController *aTabBarController = [[TabBarController alloc] initWithNibName:@"TabBarController" bundle:nil]; 
    [self.navigationController pushViewController:aTabBarController animated:YES]; 
    [aTabBarController release];  
    } 
} 

EDITED пользовательские панели вкладок:

.h файл

@interface TabBarController : UITabBarController<UITabBarControllerDelegate, UINavigationControllerDelegate> 
{ 
    UITabBarController *tabController; 
    UINavigationController *1NavController; 
    UINavigationController *2hNavController; 
} 

@property (nonatomic, retain) UITabBarController *tabController; 
@property (nonatomic, retain) UINavigationController *1NavController; 
@property (nonatomic, retain) UINavigationController *2hNavController; 

.m файл:

- (void)viewDidLoad 
{ 
[super viewDidLoad];  

tabController = [[UITabBarController alloc] init]; 
tabController.delegate = self; 
tabController.tabBar.backgroundColor = [UIColor clearColor]; 

//Add some tabs to the controller... 
1ViewController *1ViewController = [[1ViewController alloc] initWithNibName: @"1ViewController" bundle: nil]; 
1NavController = [[UINavigationController alloc] initWithRootViewController:1ViewController]; 
1NavController.tabBarItem = [[UITabBarItem1 alloc] init]; 

2ViewController *aSearchViewController = [[2ViewController alloc] initWithNibName: @"2ViewController" bundle: nil]; 
2NavController = [[UINavigationController alloc] initWithRootViewController:2ViewController]; 
2NavController.tabBarItem = [[UITabBarItem2 alloc] init]; 

tabController.viewControllers = [NSArray arrayWithObjects: 1NavController,2NavController,nil]; 

[self.view addSubview:tabController.view]; 
} 

Кроме того, необходимо реализовать методы делегата панели вкладок соответствующим образом ....

+0

, пожалуйста, укажите класс TabBarController. – Prashant

+0

@PrashantBhayani: проверьте обновленный код – Maulik

+0

@Maulik: Привет ... У меня есть сомнения в создании настраиваемой панели вкладок. Можете ли вы помочь мне? –

0

У меня была ситуация с контроллером навигации и контроллером просмотра панели табуляции, но ур нужен с контроллером представления, поэтому я изменяю свой код в соответствии с требованиями ur.check n. сначала инициализирует контроллер представления и контроллер табуляции как в делегате приложения .h файл & дать свойство также как:

{ 
    IBOutlet FirstViewController * fvc; 

    IBOutlet UITabBarController *tabBarController; 
} 
@property (nonatomic, retain) IBOutlet FirstViewController * fvc; 
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController; 

чем в .m файл установлен контроллер представления к представлению, как и хотите, чтобы установить простой контроллер представления первых, как:

fvc = [[FirstViewController alloc]initWithNibName:@"FirstViewController" bundle:[NSBundle mainBundle]]; 


[self.window addSubview: fvc.view]; 

Теперь в контроллере этого вида на конкретном событие, где и хочет, чтобы перейти к TabBar просмотр пользователю контроллера этот:

AppDelegate_iPhone *appDelegte_iPhone=(AppDelegate_iPhone*)[[UIApplication sharedApplication]delegate];     
[[[appDelegte_iPhone viewController] view] removeFromSuperview]; 
[[appDelegte_iPhone window]addSubview:[[appDelegte_iPhone tabBarController]view]]; 

    [[appDelegte_iPhone tabBarController]setSelectedIndex:0]; 
0

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

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