我使用storyboard创建了我的应用程序的界面。布局如下: NavigationController - > MasterViewController - > TabViewController - > DetailViewControllers。
我希望前两个DetailViewControllers有一个后退按钮,可以根据用户在应用程序中的进度在不同时间隐藏/显示。
我搜索,发现并尝试了许多“解决方案”。总而言之,应用程序正确编译,但其中没有一个会隐藏后退按钮(这会将用户带回MasterViewController中的tableview)。
“解决方案”我试过了:
在MasterViewController的viewDidLoad中:
[self.navigationItem setHidesBackButton:YES animated:YES];
UIBarButtonItem* backButton = [[UIBarButtonItem alloc] initWithTitle:@"Start" style:UIBarButtonItemStyleBordered target:self action:@selector(initializeStuff)];
self.navigationItem.leftBarButtonItem = backButton;
..... .....或
self.navigationItem.hidesBackButton = YES;
..... .....或
UINavigationBar *navBar = [[UINavigationBar alloc]init];
UINavigationItem *navigationItem = [[UINavigationItem alloc]init];
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] init];
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Test" style:UIBarButtonItemStyleBordered target:self action:@selector(backButtonTapped)];
self.navigationItem.leftBarButtonItem = addButton;
self.navigationItem.leftBarButtonItem.enabled=NO;
[navBar pushNavigationItem:navigationItem animated:NO];
在MasterViewController的viewWillAppear和第一个DetailViewController的initWithNibName中:
self.navigationItem.hidesBackButton = YES;
在MasterViewController的viewDidAppear中:
[self.navigationItem setHidesBackButton:YES animated:YES];
..... .....或
_detailViewController.navigationItem.leftBarButtonItem.enabled = NO;
在第一个DetailViewController的viewDidLoad和viewWillAppear以及viewDidAppear中:
[self.navigationItem setHidesBackButton:YES animated:YES];
UIBarButtonItem* backButton = [[UIBarButtonItem alloc] initWithTitle:@"Start" style:UIBarButtonItemStyleBordered target:self action:@selector(initializeStuff)];
self.navigationItem.backBarButtonItem = backButton;
我很欣赏这个董事会的智慧,并期待您能提供任何帮助。 :)