首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么self.navigationController pushViewController不能工作?

为什么self.navigationController pushViewController不能工作?
EN

Stack Overflow用户
提问于 2010-11-19 04:03:47
回答 4查看 28.8K关注 0票数 2

我有一个

UIViewController-> UINavigationBar + UITableView

再解释一下

我通过UIBuilder..。

1:用XIB文件创建了一个新的UIViewController

2:使用UIBuiler我放了一个UINavigationController

3:,然后我把UITableView放在navigationBar下面,所以它给了我..。

A: UIViewController-> UINavigationBar + UITableView

现在,我正在从一个工作良好的Webservice中加载UITableView中的数据。

我再次用sam config做了一个xib,它是

B: UIViewController-> UINavigationBar + UITableView

所以现在,当我试图将视图B推到视图A上时,使用code...it下面的视图将无法工作.

代码语言:javascript
运行
复制
SelectSiteViewController *siteViewController = [[SelectSiteViewController alloc] initWithNibName:@"SelectSiteViewController" bundle:nil];

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

当我检查UINavigationController *nav = self.navigation

nav是0x0,也就是说我假设为零。

有人能告诉我这里出了什么问题吗..。为什么是nil...and我怎么能让它工作..。

非常感谢.我真的很感谢你的帮助

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-19 05:33:15

在UIBuilder中,验证文件的所有者引用了UINavigationController。

票数 3
EN

Stack Overflow用户

发布于 2010-11-21 01:32:53

明白了。

我稍微改变了一下架构。

我用它的xib创建了一个新的UIViewController类。并编码了新的UINavigationController。

代码语言:javascript
运行
复制
- (void)viewDidLoad {
[super viewDidLoad];
    UINavigationController *navigationController
navigationController = [[UINavigationController alloc] init];
[self.view addSubview:navigationController.view];   


switch (whichViewController) {
    case 1:
        viewController = [[xxxx alloc] init];           
        break;
    case 2:
        viewController = [[xxx1 alloc] init];           
        break;
    default:
        break;
}

[navigationController pushViewController:viewController animated:NO];
[viewController release];

}

然后按一下开关语句中的视图..。

我希望这有道理.

谢谢贾米哈希

票数 2
EN

Stack Overflow用户

发布于 2010-11-19 05:41:00

因此,您要将表视图添加到导航控制器中,对吗?如下所示:

代码语言:javascript
运行
复制
tableView = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];

navigationController = [[UINavigationController alloc] init];

[navigationController pushViewController:tableView animated:NO];

将表视图作为rootview添加到导航控制器。然后在选择行时,如果希望推送另一个视图控制器,请使用

代码语言:javascript
运行
复制
self.navigationController pushViewController: newViewController animated:YES]; 

在didSelectRowAtIndex方法中。

注意:它的UITableViewController *tableView和UINavigationController *导航控制器通过声明。因此,为您的表编写相应的代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4221988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档