PresentModalViewController не отображает панель навигации в следующем представлении
Здравствуйте, я использую кнопку одной панели вкладок на панели инструментов, эта кнопка отображает следующее представление с табличным представлением. Вот мой код
[self presentModalViewController:self.navigationController
animated:YES];
моя проблема в том, что при нажатии этой кнопки на панели вкладок отображается следующий вид с табличным просмотром, но не панель навигации. из-за этого я не могу выполнить операцию удаления в tableView.
Как решить проблему?
Ответы
Ответ 1
Если вы не нашли UINavigationBar
для следующего класса, у него нет контроллера навигации, поэтому перед его нажатием добавьте UINavigationController
в следующее представление.
Попробуйте вот так:
NextViewController *nextViewController=[[NextViewController alloc]initWithNibName:@"NextViewController" bundle:nil];
UINavigationController *navBar=[[UINavigationController alloc]initWithRootViewController:nextViewController];
[self.navigationController presentModalViewController:navBar animated:YES];
[navBar release];
[nextViewController release];
см. этот вопрос о стеке_поверхности для редактирования.
Вы легко можете добавить кнопку на панель навигации
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(editTable)] autorelease];
-(void)editTable{
[tableView setEditing: YES animated: YES];
}
Все самое лучшее.
Ответ 2
Этот код вызывается при событии нажатия кнопки в классе A VC:
ClassBVC* bVc = [[ClassBVC alloc] initWithNibName:@"ClassBVC" bundle:nil];
UINavigationController* tempNavCon = [[UINavigationController alloc] initWithRootViewController:bVc];
[self presentModalViewController:tempNavCon animated:YES];
[tempNavCon release];
[bVc release];
bVc = nil
;
а в классе BVC в поле зрения загрузился элемент UIbarbutton, например:
UIBarButtonItem* barButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(backButtonClicked:)];
[barButton setTitle:@"Back"];
[self.navigationItem setLeftBarButtonItem:barButton];
[barButton release];
И в buttonClickedMethod просто отпустите контроллер модели как:
-(void)backButtonClicked:(id)sender
{
[self dismissModalViewControllerAnimated:YES];
}
Ответ 3
Это потому, что вы используете Modal для подключения нового контроллера вида.
Модифицированный добавленный/представленный контроллер представления не будет добавлен в стек навигационного контроллера
Ответ 4
если вы используете навигационный контроллер, как это
[self.navigationController pushViewController:nextController animated:YES];
Ответ 5
Добавить навигационную панель в виде суб-представления в новое представление с помощью кнопки со стрелкой.
Попробуйте это
-(IBAction) editClick:(id)sender
{
[tableView setEditing:![tableView isEditing] animated:YES];
}