1

У меня проблема с таблицей и отображение другого вида, когда пользователь касается ячейки таблицы. Я использую UITabBarController для основного представления, чтобы показывать разные виды. Затем я использую UINavigationController, когда пользователь выбирает представление UITableView для отображения следующего представления из выбора ячейки таблицы.UINavigationController, UITableView и не отображает следующий вид

Моя проблема заключается в следующем: когда они выбирают ячейку таблицы, ячейка подсвечивается, а следующее представление не отображается. Я использую IB. Все примеры, которые я нашел, делают это так же, как и я, кроме примеров!

У меня есть контроллеры, загруженные в NSMutableArray с помощью Словаря. Я также пробовал этот код, создав вместо него контрольный элемент, а не используя элемент массива. Те же результаты ....

Я проверил контроллер цели (Calc1ViewController), чтобы убедиться, что с контроллером ничего не случилось. При отображении его непосредственно контроллер (Calc1ViewController) отображается правильно.

Вот код .....

Инициализация контроллера представления в словаре:

Calc1ViewController *calc1ViewController = [[Calc1ViewController alloc] init]; 
[menuList addObject:[NSDictionary dictionaryWithObjectsAndKeys: 
        NSLocalizedString(@"SSC - page 1",@""), @"title", 
        calc1ViewController, @"viewController", 
        nil]]; 
[calc1ViewController release]; 

Я также попытался это без использования словаря - создание контроллер представления на месте из [[menuList objectAtIndex: ...]; линия - путь создания контроллера представления так:

Calc1ViewController *targetViewController = [[Calc1ViewController alloc] init]; 


// the table's selection has changed, switch to that item's UIViewController 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    UIViewController *targetViewController = [[menuList objectAtIndex: indexPath.row] objectForKey:@"viewController"]; 
    [[self navigationController] pushViewController:targetViewController animated:YES]; 
    targetViewController = nil; 
} 

Контроллер навигации определяются в AppDelegate и подключен к RootViewController через IB.

Когда я выбираю строку таблицы, она показывает в отладчике, что выполняется код pushViewController, но следующее представление не отображается. Вот пример:

alt text http://thecoolestcompany.com/ssc-table-view.jpg

Любые идеи?

ответ

1

Наконец понял это ......

я имел UINavigationController и UITabBarController на том же уровне. После перемещения контроллера навигации в качестве дочернего элемента в контроллер панели вкладок все сработало. Вы можете добавить столько навигационных контроллеров в панель вкладок, сколько захотите. В IB это немного запутанно. Вам нужно перетащить NavigationController в TabBar, чтобы он стал новым элементом панели вкладок.

0

Theres не так много, чтобы пройти с кодом, который вы предоставили. Единственное, что я могу придумать, не глядя на более код, - это то, что, возможно, вы не правильно инициализировали ваш контроллер просмотра (тот, что в вашем словаре) правильно или вообще, или словарь, который вы используете, не является правильным ...

+0

Добавлен еще один код - если есть дополнительный код, чтобы помочь, дайте мне знать, и я обязательно добавлю его - спасибо! –

0

Какова ценность [self navigationController] при вызове pushViewController. Это ноль?

Каково значение targetViewController, когда оно передается pushViewController. Это ноль?

+0

выглядит так: targetViewController не равен нулю и является правильным контроллером представления для отображаемого мной. У меня проблемы с navigationController .. он изначально определен в App Delegate как UINavigationController * calcPageNavigation; –

Смежные вопросы