[問題] 有關 navigation controller 的問題?

看板MacDev作者 ( )時間15年前 (2010/07/26 02:21), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
其實是有點雜的問題.. 是拿朋友寫的 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
文章代碼(AID): #1CJ82grR (MacDev)
文章代碼(AID): #1CJ82grR (MacDev)