我正在做一个基于导航的应用程序。 让我解释一下应用程序。 在程序加载表视图中将显示3个选项,如:
如果用户选择上述任何选项,它将导航到另一个表视图并显示子选项。并且它将继续上升到6到7个级别。
所以我在tableView的类(Sales)的didSelectRowAtIndexPath:
中创建了它自己的对象并使用[self.navigationController pushViewController:myViewController animated:YES];
我正在创建另一个视图并绑定数据库中的数据。这对我来说很好,问题是。我没有得到导航栏上自动显示的“后退”按钮。
我的实现就像这样
@implementation Sales
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
Sales *myViewController = [[Sales alloc] initWithNibName:@"Sales"];
[self.navigationController pushViewController:myViewController animated:YES];
//Do other stuffs here
}
@end
像这样我正在显示所有级别。但当我在任何选项内导航时,我没有得到后退按钮。 (通常如果我导航到酒店,它将显示一个detailView并在导航栏上显示一个后退按钮,但在这种情况下,这不会发生)。 我认为问题在于创建同一个类的对象并显示它,但我无法创建如此多的类和视图(总共约43个级别)。 如何解决此问题(如何在导航栏上显示后退按钮)? 我的方法是好的还是有这个问题的替代解决方案? 提前谢谢。
答案 0 :(得分:2)
推送同一类视图控制器的方法很好。错误必须在其他地方。
title
。这是子视图控制器可见时在后退按钮上显示的文本。如果该文本为nil
,则不会有后退按钮。答案 1 :(得分:2)
当您创建“后退”按钮时,它是“下一个”级别。因此,“当前导航控制器”的后退按钮是在上一级创建的...是的,这有点令人困惑。
好吧,我在“iLessons iLearned: How to Define Custom backBarButtonItem”上写了这篇博文,但这里是创建后退按钮的示例代码:
- (void)viewDidLoad
{
[super viewDidLoad];
UIBarButtonItem *backButton =
[[UIBarButtonItem alloc]
initWithTitle:@"My Back"
style:UIBarButtonItemStyleBordered
target:nil
action:nil];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];
}
现在只需确保在正确的navigationController中使用它!