これらのタブを使用して2つのView Controllerをロードするために、アプリに2つのタブを追加しました
- Tab1 : ホーム
- Tab2 : お気に入り
だから私はこれを達成するために以下のコードを書いた
アプリ内デリゲート
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 と言う 4 つの画面があります。
A 画面と C 画面のタブを追加しました。これらはアプリ全体 (すべての画面) で使用できます。
アプリを起動して A -> B-> C -> D に移動し、[ホーム] タブ (A) を押すと、画面 A が読み込まれず、現在の画面のままになります。
しかし、良いことは、別のタブC(私のお気に入り)で同じプロセスを実行すると、正しい画面がロードされることです。
編集: @sanjitが私に提案したように、 didSelectViewControllerメソッドを実装しましたが、区別できないという点で、今回はどのタブがタップされていますか?
よろしくお願いします!! 誰かが私を正しい方向に向けることができれば