2012-02-28 7 views
1

Это первый раз, когда я пытаюсь реализовать навигацию из ячейки tableView в другой tableView с помощью UINavigationController, и это не работает для меня. Я НЕ использую nib-файл, и у меня есть простой tableView, который я представляю в модальном диалоговом окне в моем приложении, он отлично работает, теперь я добавил раскрывающийся идентификатор к одной из его ячеек, чтобы пользователь мог выбирать из фиксированное количество опций, доступных из другого списка (tableView). Для этого у меня есть другой класс, который делает второй tableView. теперь проблема заключается в навигации из ячейки (содержит значок раскрытия) в первом представлении таблицы для второго tableView ничего не делает, нет ошибки, нет ничего. Я предполагаю, что способ настройки контроллера навигации был бы неправильным, код не попадает в делегат или источник данных второго класса вообще.PushViewController ничего не делает

в первом TableView в методе: didSelectRowAtIndexPath Я попытался поймать эту строку, а затем вызвать вторую Tableview так:

mySecondViewController *secondVC = [[[mySecondViewController alloc] initWithStyle:UITableViewStyleGrouped ] autorelease]; 
    UINavigationController *navCont = [[UINavigationController alloc] initWithRootViewController: self];//not sure the first controller should act as the root controller? 
[navCont pushViewController:secondVC animated:YES]; //it does nothing, no error,... 

второго класса tableViewcontroller содержит все делегат и Datasource методы и метод инициализации:

- (id)initWithStyle:(UITableViewStyle)style 
{ 
    if ((self = [super initWithStyle:style])) { 

    } 
    return self; 
} 

    and declared in interface as: 
@interface stockOptionViewController : UITableViewController { 

} 

Я пытался играть с viewDidLoad, но не помог.

Пожалуйста, помогите мне, потому что у меня нет подсказки, и все найденные примеры кода основаны на использовании файлов nib.

Спасибо, Kam

ответ

5

Навигационная контроллер должна быть контроллер зрения корня окна приложения делегата, и первый контроллер представления должна быть контроллером вида корневой системы навигации контроллера, то вы можете нажать новые контроллеры на Это.

См. Документацию по адресу UINavigationControlle r.

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

0

UINavigationController должен быть контроллером корневого представления. В текущем коде navCont не находится в стеке просмотра, поэтому он не будет работать. Вместо нажатия myFirstViewController в приложении appDelegate нажмите UINavigationController в стек и добавьте myFirstViewController в качестве своего контроллера корневого представления.

0

Вы можете представить контроль вид модально без контроллера нав

mySecondViewController *secondVC = [[[mySecondViewController alloc] initWithStyle:UITableViewStyleGrouped ] autorelease]; 
[self presentModalViewController:secondVC animated:YES]; 
+0

он прекрасно работает. благодаря – Cam

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