作者Senkousha ( )
看板MacDev
标题[问题] 有关 navigation controller 的问题?
时间Mon Jul 26 02:21:27 2010
其实是有点杂的问题..
是拿朋友写的 code 来作实验玩的,所以有些问题也许很难重现也说不一定。
我所作的事基本上是在 AppDelegate 里的
- (void)applicationDidFinishLaunching:(UIApplication *)application
改动别人所写的初始化动作,将原本用 alloc / initWithNibName 作出来的
rootViewController 换成空白的
UIViewController *rootViewController = [[UIViewController alloc] init];
再交给 navigation controller 作初始化:
[[UINavigationController alloc]
initWithRootViewController: rootViewController];
我原本主要是想观察 root view controller 的 retainCount 啦…
首先有点搞不懂的是,为什麽拿来生完 navigation controller之後,
retainCount 会从 1 变成 3 呢?除了 navigation controller 之外,
还有谁可能会在 initWithRootViewController 中 retain rootViewController??
即使我把 navigationController release 掉,
把 applicationDidFinishLaunching 中的 rootViewController 也 release 掉,
rootViewController 的 retainCount 仍然有 1…
再来就是,在 simulator 中我发现程式一开始竟然还是会先冒出原本正牌
RootViewController 的 view,然後才被清成白的…
而这只有第一次 build & debug 时才会发生,
如果在 simulator 中 quit app 再重开,就会直接出现空白的 nav bar + view…
请问这可能是为什麽呢?simulator 会 cache 住已开过的 app 吗?
我有试过 "Reset Content and Settings...",结果并没有改变。
会是哪边有一开始的 Nib 设定吗?
最後,是 navigationController 初始化完成之後,
将它加到 AppDelegate 的 IBOutlet UIWindow *window 的 subview 时的事:
[window addSubView: [navigationController view]];
这个动作一下将 rootViewController 的 retainCount 加了 10…
这又是大概发生了什麽事呢?
在用 XCode 的 template "Navigation-based application" 作出来的 project 中
也可以观察到 addSubView 前後,rootViewController 的 retainCount
从 1 变成了 7…
如果这些问题的相关线索,
可以从 delegate protocol 的文件或是其它 guide 查询得知的话,
也请各位先进指点一下文件名称~感谢~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.168.82