навигация внутри панели вкладок, которая вызывается модально из didSelectRowAtIndexPath - PullRequest
0 голосов
/ 07 марта 2012

Я создаю приложение следующим образом - при запуске приложения отображается табличное представление. Я создаю это программно. При выборе конкретной строки я делаю presentModalViewController для отображения моего класса панели вкладок, который я создал программно.

ViewController.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

ShowOptionInTab *showTabbar = [[ShowOptionInTab alloc] initWithNibName:@"ShowOptionInTab" bundle:nil];
UINavigationController *mynavController = [[UINavigationController alloc] initWithRootViewController:showTabbar];
[self presentModalViewController:mynavController animated:YES];
[showTabbar release];
}

ShowOptionsInTab.m класс

@implementation ShowOptionInTab


-(void)loadView {
UIView *contentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
contentView.backgroundColor = [UIColor whiteColor];
self.view = contentView;
[contentView release];

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissTabbar:)];

self.navigationItem.rightBarButtonItem=doneButton;


UITabBarController *tabbarController = [[UITabBarController alloc] init];
tabbarController.view.frame = CGRectMake(0, 0, 320, 460);


BuyerViewController *buyerController = [[BuyerViewController alloc] init ];


buyerController.navigationItem.title=@"Buyer";
buyerController.title=@"Buyer";
self.navigationController.navigationBar.tintColor = [UIColor blackColor];

SellerViewController *sellerController = [[SellerViewController alloc] init];

sellerController.navigationItem.title=@"Seller";
sellerController.title=@"Seller";

LenderViewController *lenderController = [[LenderViewController alloc] init];

lenderController.navigationItem.title=@"Lender";
lenderController.title=@"Lender";


tabbarController.viewControllers = [NSArray arrayWithObjects:buyerController,sellerController,lenderController, nil];
[self.view addSubview:tabbarController.view];
[sellerController release];
[buyerController release];
[lenderController release];
}

-(void)dismissTabbar:(id)sender {
[self dismissModalViewControllerAnimated:YES];
}

Мой класс ShowOptionsInTab является подклассом UIViewController

У меня есть 3 вкладки Покупатель, Кредитор и Продавец. На каждой вкладке есть кнопки для перехода на другую страницу UIViewController. Предположим, у меня есть «ButtonA» и «ButtonB» в моем классе вкладки «Покупатель». Проблема, с которой я сталкиваюсь, заключается в том, что я не могу перемещаться по кнопкам, присутствующим на вкладках Покупателей (или любых других вкладках). Это не подталкивает к следующему классу, который должен загрузить ButtonA. Он также имеет кнопку «Готово» на панели навигации, которая закрывает модальное представление и отображает мое табличное представление.

Что я делаю не так? если я добавлю эти вкладки в объект localNavigationController, который я создаю в своем классе ShowOptionsInTab.m, я получу 2 панели навигации.

1 Ответ

0 голосов
/ 08 июня 2012

Я получил решение. Я сделал 3 локальных объекта navigationController и добавил каждый из моих классов табуляции в качестве своего rootviewController.

...