я создал панель вкладок элементов в первом контроллереКак передать значение индекса вкладки из UITabBarController в UIViewController
UITabBarController *tabBarController = [[UITabBarController alloc] init];
tabBarController.delegate = self;
tabBarController.view.frame = CGRectMake(0, 0, 320, 460);
StageViewController *stageViewRegular = [[StageViewController alloc] init];
[stageViewRegular setTitle:@"Regular"];
stageViewRegular.tabBarItem.tag = 1;
StageViewController *stageViewAdvanced = [[StageViewController alloc] init];
[stageViewAdvanced setTitle:@"Advanced"];
stageViewAdvanced.tabBarItem.tag = 2;
NSArray* controllersArray = [NSArray arrayWithObjects:stageViewRegular, stageViewAdvanced, nil];
tabBarController.viewControllers = controllersArray;
tabBarController.selectedIndex = 0;
[self.view addSubview:tabBarController.view];
и я хочу передать tabBarItem.tag к контроллерам, как упоминалось выше
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
chooseLevel = viewController.tabBarItem.tag;
}
но во втором контроллере
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
NSLog(@"%d", chooseLevel);
}
chooseLevel всегда записать старое значение. Если я нажимаю первую вкладку, а затем нажимаю вторую вкладку, значение в selectLevel равно 1, а не 2.
Кто-нибудь знает, как ее решить?
я нашел два ViewControllers доступа viewDidLoad первым, а затем получить значение я прохожу. Но до сих пор не знаю, как решить. –
Попробуйте - (BOOL) tabBarController: (UITabBarController *) tbController shouldSelectViewController: (UIViewController *) viewController { return YES; } – stosha
спасибо за ваш ответ, но он не работает. возможно, я должен сначала передать значение, а затем нажать на другое представление. –