首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于initWithNavigationBarClass的困惑--如何使用(新的instanceType方法)

关于initWithNavigationBarClass的困惑--如何使用(新的instanceType方法)
EN

Stack Overflow用户
提问于 2014-03-09 18:21:15
回答 1查看 1.5K关注 0票数 5

这很好用:

代码语言:javascript
复制
UINavigationController *nc =
    [[UINavigationController alloc]
    initWithNavigationBarClass:[GTScrollNavigationBar class]
    toolbarClass:[UIToolbar class]];
nc.viewControllers = @[firstPage];
self.window.rootViewController = nc;

但是,这确实是而不是的工作:

代码语言:javascript
复制
UINavigationController *nc =
    [[UINavigationController alloc]
    initWithNavigationBarClass:[GTScrollNavigationBar class]
    toolbarClass:[UIToolbar class]];
self.window.rootViewController = nc;
self.window.rootViewController.viewControllers = @[firstPage]; // ERROR

怎么可能呢?谢谢

EN

Stack Overflow用户

回答已采纳

发布于 2014-03-10 08:13:53

代码语言:javascript
复制
self.window.rootViewController.viewControllers = @[firstPage];

不编译,因为rootViewController属性UIWindow被声明为(泛型) UIViewController (它没有viewControllers属性),而不是UINavigationController

在您的情况下,编译器不知道根视图控制器实际上是一个导航控制器。

因此,要么按照第一个代码块的方式进行,要么必须添加一个显式强制转换:

代码语言:javascript
复制
((UINavigationController *)self.window.rootViewController).viewControllers = @[firstPage];
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22286166

复制
相关文章

相似问题

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