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

2023-06-12移动开发问题
9

本文介绍了关于 initWithNavigationBarClass 的困惑 - 如何使用(新的 instanceType 方法)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

这很好用:

UINavigationController *nc =
    [[UINavigationController alloc]
    initWithNavigationBarClass:[GTScrollNavigationBar class]
    toolbarClass:[UIToolbar class]];
nc.viewControllers = @[firstPage];
self.window.rootViewController = nc;

但这确实有效:

but this does not work:

UINavigationController *nc =
    [[UINavigationController alloc]
    initWithNavigationBarClass:[GTScrollNavigationBar class]
    toolbarClass:[UIToolbar class]];
self.window.rootViewController = nc;
self.window.rootViewController.viewControllers = @[firstPage]; // ERROR

怎么可能?谢谢

推荐答案

self.window.rootViewController.viewControllers = @[firstPage];

无法编译,因为声明了 UIWindowrootViewController 属性作为(通用)UIViewController(没有 viewControllers 属性),而不是作为 UINavigationController.

does not compile because the rootViewController property of UIWindow is declared as a (generic) UIViewController (which does not have a viewControllers property), and not as a UINavigationController.

编译器并不知道"根视图控制器实际上是一个导航控制器在你的情况下.

The compiler does not "know" that the root view controller is actually a navigation controller in your case.

因此,要么像在第一个代码块中那样继续,要么必须添加显式转换:

So either you proceed as in your first code block, or you have to add an explicit cast:

((UINavigationController *)self.window.rootViewController).viewControllers = @[firstPage];

这篇关于关于 initWithNavigationBarClass 的困惑 - 如何使用(新的 instanceType 方法)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

硬件音量按钮更改应用程序音量
Hardware Volume buttons change in app volume(硬件音量按钮更改应用程序音量)...
2024-08-12 移动开发问题
10

恢复游戏 cocos2d
Resume game cocos2d(恢复游戏 cocos2d)...
2024-08-12 移动开发问题
6

Cocos2D + 仅禁用 Retina iPad 图形
Cocos2D + Disabling only Retina iPad Graphics(Cocos2D + 仅禁用 Retina iPad 图形)...
2024-08-12 移动开发问题
10

[ios.cocos2d+box2d]如何禁用自动旋转?
[ios.cocos2d+box2d]how to disable auto-rotation?([ios.cocos2d+box2d]如何禁用自动旋转?)...
2024-08-12 移动开发问题
7

从 Documents 目录存储和读取文件 iOS 5
Storing and reading files from Documents directory iOS 5(从 Documents 目录存储和读取文件 iOS 5)...
2024-08-12 移动开发问题
9

如何在 cocos2d 环境之外实现 cocos2d 游戏的虚拟摇杆?
How can I implement a virtual joystick for a cocos2d game outside the cocos2d environment?(如何在 cocos2d 环境之外实现 cocos2d 游戏的虚拟摇杆?)...
2024-08-12 移动开发问题
13