我遇到了问题,现在无法找到解决方案。我是iPhone SDK的新手,所以我想我只是遗漏了一些东西。
我的应用程序包含一个TabbedNavigation,有三个ViewControllers。一切都按预期工作。现在我想在用户选中一个按钮(而不是标签按钮......)时打开一个新视图(最好是从NIB开始)。按钮的action方法按预期调用。但是,我没有加载新的(table-)视图。
我尝试给你一些解释我情况的代码:
首先,在我的应用程序委托的didFinishLaunchingWithOptions中,我加载tabBarController的视图(TabBarController是委托的属性):
// Add the tab bar controller's view to the window and display.
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
当应用程序是startet时,TabController的第一个ViewController会按预期显示。这个viewController有自定义的ViewController类,按钮的action方法就在这个类中。我的动作方法如下:
-(IBAction)filtersButtonPressed:(id)sender {
FiltersTableViewController *filtersViewController =
[[FiltersTableViewController alloc] initWithNibName:@"Filters" bundle:nil];
[[[super tabBarController] navigationController] pushViewController:filtersViewController];
}
不知怎的,这不起作用......我当然尝试了几件事 - 没有成功。
你们有人可以指出我正确的方向吗?只需按一下按钮就可以获得新视图......
提前致谢!
Chers,pawi
答案 0 :(得分:0)
建议您尝试将新的“过滤器”视图显示为模态视图控制器。尝试将代码更改为:
-(IBAction)filtersButtonPressed:(id)sender {
FiltersTableViewController *filtersViewController =
[[FiltersTableViewController alloc] initWithNibName:@"Filters" bundle:nil];
[self presentModalViewController:filtersViewController animated:YES];
这将在当前视图的顶部向上滑动过滤器视图控制器(尽管您可以根据需要更改动画效果)。要摆脱这种情况,当用户完成视图时,请调用
[self dismissModalViewControllerAnimated:YES];
修改强> 如果您确实想使用导航控制器将视图推入堆栈,请使用
[self.navigationController pushViewController:filtersViewController];