Mam problem dotyczący UINavigationController. To, co robię, to ustawiam jeden kontroler nawigacyjny, który zajmuje się jednym kontrolerem widoku, nazwijmy go A. Teraz umieszczam UIView na kontrolerze widoku A i na wierzchu tego widoku, widoku tabeli. TableViewcontroller i jego delegaci są zdefiniowani w oddzielnej klasie. Teraz to, co chcę zrobić, to wypchnięcie nowego kontrolera widoku przy użyciu metody "pushViewController", gdy użytkownik kliknie komórkę tabeli. Czy muszę przekazywać odwołanie do kontrolera nawigacyjnego aż do mojego kontrolera widoku tabeli? Albo jak mam pobrać kontroler nawigacyjny z klasy tabelviewcontroller?

0
user1692986 27 wrzesień 2012, 18:29

2 odpowiedzi

Najlepsza odpowiedź

W oddzielnej klasie UITableViewclass say(yourTableView), gdzie masz UITableViewDelegates, zadeklaruj właściwość id delegate; Z twojego widokuKontroler powiedz A ,temat yourTableView.delegate = self;

I być może w didSelectRowAtIndexPath twojejTableViewClass do pchania na didSelect jak zawsze utwórz instancję newController do wypchnięcia (np. newController) w końcu ..

[delegate.navigationController pushViewController:newController animated:YES];

Tutaj „delegatem” okazuje się być viewController A, do którego już przypisałeś UINavigationController. Mam nadzieję, że to zadziała

1
AppleDelegate 27 wrzesień 2012, 18:48

Oto samouczek, który udało mi się uruchomić .

Przeczytałem też oficjalną dokumentację SDK na ten temat: Łączenie paska kart i kontrolerów nawigacyjnych. Ponieważ wciąż się uczę, samouczek pomógł mi więcej niż w dokumentach.

W przeciwnym razie wypróbuj ten kod

- (void)applicationDidFinishLaunching:(UIApplication *)application { 

// Create instance of UINavigationController
UINavigationController *myNavigationController;
// Create initialized instance of UITabBarController
UITabBarController *tabBarController = [[UITabBarController alloc] init];
// Create initialized instance of NSMutableArray to hold our UINavigationControllers
NSMutableArray *tabs = [[NSMutableArray alloc] init];

// Create first UIViewController
UIViewController *myFirstViewController = [[UIViewController alloc] init];
[myFirstViewController setTitle:@"First"];
// Initialize the UINavigationController
myNavigationController = [[UINavigationController alloc] initWithRootViewController:myFirstViewController];
// Add UINavigationController to you tabs
[tabs addObject:myNavigationController];
// Release UIViewController and UINavigationController
[myFirstViewController release], [myNavigationController release];

// Create second UIViewController
UIViewController *mySecondViewController = [[UIViewController alloc] init];
[mySecondViewController setTitle:@"Second"];
// Initialize the UINavigationController
myNavigationController = [[UINavigationController alloc] initWithRootViewController:mySecondViewController];
// Add UINavigationController to you tabs
[tabs addObject:myNavigationController];
// Release UIViewController and UINavigationController
[mySecondViewController release], [myNavigationController release];

// Add the tabs to the UITabBarController
[tabBarController setViewControllers:tabs];
// Add the view of the UITabBarController to the window
[self.window addSubview:tabBarController.view];
}
1
SameSung Vs Iphone 27 wrzesień 2012, 18:42