#iphone #objective-c #ios #uitableview #uinavigationcontroller
#iPhone #objective-c #iOS #uitableview #uinavigationcontroller
Вопрос:
У меня есть проект на основе представления с набором кнопок.
При нажатии одной из кнопок я хотел бы, чтобы создавалось табличное представление с контроллером навигации. У меня есть этот код в другом проекте.
Мой код в основном представляет собой это руководство с некоторыми незначительными изменениями (только первые 2 части): CODE
Есть ли способ импортировать этот код в мой основной проект, чтобы при нажатии кнопки выполнялся предыдущий код?
Редактировать:
Я использую этот метод, позволяющий мне изменять представления:
- (void) displayView:(int)intNewView{
NSLog(@"%i", intNewView);
[currentView.view removeFromSuperview];
[currentView release];
switch (intNewView) {
case 1:
currentView = [[View1 alloc] init];
break;
case 2:
currentView = [[View2 alloc] init];
break;
case 3:
currentView = [[View3 alloc] init];
break;
case 4:
currentView = [[View4 alloc] init];
break;
case 5:
vc = [[RootViewController alloc] init];
currentView = [[UINavigationController alloc] initWithRootViewController:vc];
[self presentModalViewController: currentView animated:YES];
break;
}
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
[self.view addSubview:currentView.view];
[UIView commitAnimations];
}
RootViewController — правильный контроллер. Если я удалю 2 строки:
currentView = [[UINavigationController alloc] initWithRootViewController:vc];
[self presentModalViewController: currentView animated:YES];
И замените vc на currentView в инициализаторе rootview, тогда код сработает, и моя таблица отобразится с использованием моих пользовательских ячеек и успешно проанализирует xml и отобразит правильные данные, но без контроллера навигации. Однако, когда я добавляю 2 строки выше, представление таблицы не работает, и я получаю XML-код ошибки 5…Есть идеи?
Спасибо,
Джек
Ответ №1:
Вы можете создать контроллер (с вашим табличным представлением), а затем создать навигационный контроллер с его корневым контроллером в качестве контроллера, имеющего табличное представление. И отсюда вы можете представить этот контроллер навигации.
Навигационный контроллер имеет метод, называемый как
- (id)initWithRootViewController:(UIViewController *)rootViewController
Обновить:
// Создайте свой корневой контроллер.
RootController *controller = [[RootController alloc] initWithNibName:@"RootControllerNibName" bundle:nil];
// Создайте свой навигационный контроллер с его корневым контроллером.
UInavigationController *navController = [UINavigationController initWithRootViewController:controller];
// Представьте свой контроллер навигации.
[self presentModalViewController: navController animated:YES];
// Освободить корневой контроллер и навигационный контроллер…
Комментарии:
1. Привет @pratikshabhisikar, я думаю, я знаю, откуда ты, но я все еще получаю ошибки… Я отредактировал свой пост, чтобы включить это, вы можете помочь? Спасибо, Джек
2. Можете ли вы попробовать тот же код, пропустив строку ‘[self presentModalViewController: currentView animated: YES];’?
3. Да, это сработало, странно, я уверен, что я устал прошлой ночью, и это не … Неважно. В любом случае, большое спасибо @pratikshabhisikar, проблема решена!