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];
}