Нажмите UITabBarController из UINavigationController - PullRequest
1 голос
/ 08 июля 2011

У меня есть UINavigationController , и я успешно перемещаюсь из одного вида в другой. Но в какой-то момент я хочу показать UITabBarController с некоторыми представлениями.

(я выбираю пользователя из списка и хочу показать его профиль (содержащий несколько просмотров) с вкладками)

Я искал, пробовал и ничего ... Я не могу найти кого-то, кто попробовал что-то подобное.

Может кто-нибудь дать мне несколько советов о том, как создать nib-файл для UITabBarController и как отправить его из контроллера навигации?

Ответы [ 4 ]

2 голосов
/ 08 июля 2011

Не делай этого.добавить tabbatcontroller в ваш класс главного окна.всякий раз, когда вам нужно Tabar в приложении.просто удалите UINavigationController и добавьте UITabBarController.

или добавьте add tabbatcontroller в класс основного окна и просто представьте tababrcontroller из текущего viewcontroller.

AppDelegate *delegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
delegate.tCtr.selectedIndex = index;
delegate.tCtr.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:delegate.tCtr animated:YES];
2 голосов
/ 08 июля 2011

Это простая задача, сделать UIViewController и добавить его в качестве подпредставления UITabBarController.Теперь вы можете просто отправить его с помощью навигационного контроллера на этот контроллер.

MainScreen *mainScreen = [[MainScreen alloc] initWithNibName:@"MainScreen" bundle:nil];
    mainScreen.navigationItem.hidesBackButton = YES;
    self.navigationController.navigationBar.hidden = YES;
    [self.navigationController pushViewController:mainScreen animated:YES];

А в методе viewDidLoad контроллера MainScreen добавьте TabBarController как подпредставление в self.view.Также сделал вывод tabbarcontroller и связал его с конструктором интерфейса объекта TabBarController.

0 голосов
/ 02 августа 2013

Поскольку ответ @Rakesh Bhatt сработал для меня, вот эквивалентный код Monotouch для его запуска. Моя ситуация была такова, что у меня есть SignInViewController, который я сначала показываю, а затем заменил его на подкласс UITabBarController.

        AppDelegate.Navigation.SelectedIndex = 0;
        AppDelegate.Navigation.ModalTransitionStyle = UIModalTransitionStyle.FlipHorizontal;
        PresentViewController (AppDelegate.Navigation, true, null);
0 голосов
/ 08 июля 2011

Конечно, почему бы просто не переназначить массив вашего нового UIViewController в свойство viewControllers UITabBarController?Это сделает свое дело.

- (void)addNewControllers {
    NSMutableArray *controllers = [NSMutableArray array];
    UIViewController *c0 = [[[UIViewController alloc] init] autorelease];
    [controllers addObject: c0];

    UIViewController *c1 = [[[UIViewController alloc] init] autorelease];
    [controllers addObject: c1];

    UIViewController *c2 = [[[UIViewController alloc] init] autorelease];
    [controllers addObject: c2];

    [myTabBarController setViewControllers:controllers];
}

вызов выше функции

затем [self.navcont pushviewcontroller: mytabbarcontroller animated: yes];

здесь измените эти uiviewcontroller на свои собственные, заменив функцию nibname наиспользуя IB

для более

http://www.cimgf.com/2009/06/25/uitabbarcontroller-with-uinavigationcontroller-using-interface-builder/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...