Kontroler paska kart w telefonie iPhone
Dodałem dwie karty w mojej aplikacji, aby załadować kontroler dwóch widoków za pomocą tych kart
Tab1: HomeTab2: Ulubionewięc napisałem poniższy kod, aby to osiągnąć
W aplikacji Delegat
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 oto ekran wyników, który otrzymuję
Więc gdzie mam kłopoty w tym ..
Jeśli przejdę do następnego ekranu, moja pierwsza karta nie ładuje pierwszego ekranu (ekranu głównego), zamiast tego pozostaje na bieżącym ekranie.
Pozwól mi spróbować na przykład
W mojej aplikacji są cztery ekrany, powiedzmy A, B, C, D
Dodałem zakładki dla ekranów A i C, które są dostępne w całej aplikacji (ekran Wszystkie).
Teraz, jeśli uruchomię aplikację i przejdę do A -> B-> C -> D i wciśniesz na zakładkę Home (A), nie wczyta ona ekranu A, zamiast tego pozostanie na bieżącym ekranie
ale dobrą rzeczą jest to, że jeśli wykonam ten sam proces z inną kartą C (Moje ulubione), ładuje poprawny ekran.
Edytować: WdrożyłemdidSelectViewController metoda jak @sanjit zasugerowała mi, ale w tym nie mogłem rozróżnić, która karta jest dotknięta tym razem?
Byłbym naprawdę wdzięczny !! jeśli ktoś może wskazać mi właściwy kierunek