PresentModalViewController not showing navigation bar on next view

廉价感情. 提交于 2019-12-21 07:42:11

问题


Hello I am using One tab bar button on toolbar , this button will show next view with table view ,Here is my code

[self presentModalViewController:self.navigationController
                            animated:YES];

my problem is that when I click this tab bar button it will showing next view with tableview but not navigation bar. because of this i am unable to perform delete operation in tableView.

How to solve the issue?


回答1:


If you dont find the UINavigationBar on the next class means , it does not have a navigation controller, so before pushing it add a UINavigationController to your next view.

Try like this:

NextViewController *nextViewController=[[NextViewController alloc]initWithNibName:@"NextViewController" bundle:nil];
UINavigationController *navBar=[[UINavigationController alloc]initWithRootViewController:nextViewController];
[self.navigationController presentModalViewController:navBar animated:YES];
[navBar release];
[nextViewController release];

see this stackoverflow question for edit option.

You can simply add a button to navigation bar with ease

self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(editTable)] autorelease];

-(void)editTable{
[tableView setEditing: YES animated: YES];
}

All the best.




回答2:


This code is called on button click event in classA 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

;

and in class BVC in view did load you make an UIbarbutton item e.g:

UIBarButtonItem* barButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(backButtonClicked:)];
    [barButton setTitle:@"Back"];
    [self.navigationItem setLeftBarButtonItem:barButton];
    [barButton release];

And in buttonClickedMethod simply dismiss the the model controller as:

-(void)backButtonClicked:(id)sender
{
    [self dismissModalViewControllerAnimated:YES];
}



回答3:


That is because you are using Modal to bring the new view controller.

Modally added/presented view controller will not be added to the navigation controller stack




回答4:


if you are using navigationcontroller use like this

[self.navigationController pushViewController:nextController animated:YES];



回答5:


Add navigation bar as sub view to the new view with bar button.

Try this

-(IBAction) editClick:(id)sender
{
    [tableView setEditing:![tableView isEditing]  animated:YES];
}


来源:https://stackoverflow.com/questions/6056726/presentmodalviewcontroller-not-showing-navigation-bar-on-next-view

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!