Контроллер Tab Bar в iPhone
Я добавил две вкладки в свое приложение, чтобы загрузить два контроллера представления, используя эти вкладки
Tab1: HomeTab2: избранноепоэтому я написал ниже код для достижения этой цели
В приложении делегат
AppDelegate.h
@class ViewController,FavViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController *viewController;
@property (strong, nonatomic) FavViewController *favViewController;
@property (strong, nonatomic) UITabBarController *tabBarController;
@end
AppDelegate.m
@implementation AppDelegate
@synthesize window = _window;
@synthesize viewController;
@synthesize favViewController;
@synthesize tabBarController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
baseTabBarController = [[UITabBarController alloc]init];
baseTabBarController.delegate=self;
viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
UINavigationController *homeView = [[UINavigationController alloc]initWithRootViewController:viewController];
favViewController = [[FavViewController alloc] initWithNibName:@"FavViewController" bundle:nil];
favViewController.title = @"My Favourite";
UINavigationController *favouriteView = [[UINavigationController alloc] initWithRootViewController:favViewController];
NSArray *controllers = [NSArray arrayWithObjects:homeView,favouriteView, nil];
baseTabBarController.viewControllers = controllers;
[self.window addSubview:baseTabBarController.view];
[self.window makeKeyAndVisible];
return YES;
}
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)selectedViewController
{
if (tabBarController.selectedIndex == 0) {
}else if (tabBarController.selectedIndex == 1) {
[(FavViewController *)[(UINavigationController*)selectedViewController topViewController] getData];
}else if (tabBarController.selectedIndex == 2) {
NSLog(@"2");
}
}
и вот экран результатов я получаю
Так где у меня проблемы в этом ..
Если я переключаюсь на следующий экран, моя первая вкладка не загружает первый экран (домашний экран), а просто остается на текущем экране.
Позвольте мне попробовать с примером
В моем приложении четыре экрана, скажем, A, B, C, D
Я добавил вкладки для экранов A и C, они доступны во всем приложении (весь экран).
Теперь, если я запущу приложение и зайду A -> B-> C -> D и нажму на вкладку «Главная» (A), он не загружает экран A, а просто остается на текущем экране.
но хорошо, если я делаю тот же процесс с другой вкладкой C (My Favorite), он загружает правильный экран.
Редактировать: Я реализовалdidSelectViewController метод, как @sanjit предложил мне, но в этом я не могу различить, какая вкладка нажата на этот раз?
Я был бы очень признателен! если кто-то может указать мне правильное направление