在我最近的項目中,我使用了presentviewController來組織視圖的切換。但是有一個奇怪的問題。涉及presentViewController的崩潰
首先我寫了一個關於git hub的演示:test present view。希望它能使問題更容易理解。
其次,我展示我在演示中所做的: 1)中的根視圖控制器T1RootViewController,它有一個屬性:
@property (strong, nonatomic) T1TopViewController1 *top1VC;
當它加載,它增加了T1TopViewController1作爲其唯一的子視圖:
self.top1VC = [[T1TopViewController1 alloc] initWithNibName:@"T1TopView1" bundle:nil];
[self.view addSubview:self.top1VC.view];
2)T1TopViewController1有一個屬性:
@property (strong, nonatomic) T1TopViewController2 *topVC2;
它也有一個按鈕,這本T1TopViewController2時的pressed它:
self.topVC2 = [[T1TopViewController2 alloc] initWithNibName:@"T1TopView2" bundle:nil];
[self presentViewController:self.topVC2 animated:NO completion:nil];
3)T1TopViewController2是幾乎相同T1TopViewController1,不同之處在於它提出T1TopViewController3
4)T1TopViewController3有一個按鈕,按下時會回到顯示T1TopViewController1:
UIWindow *rootWin = [[UIApplication sharedApplication] keyWindow];
T1RootViewController *rootVC = (T1RootViewController *)rootWin.rootViewController;
[rootVC.top1VC dismissViewControllerAnimated:NO completion:nil];
然後運行這個程序,從T1TopViewController1,單擊每個視圖上的按鈕,直到出現T1TopViewController3。然後點擊T1TopViewController3按鈕,這將返回到T1TopViewController1。然後再次單擊T1TopViewController1上的按鈕。現在可能出現問題:
1)在IOS 5模擬器,所有的罰款
2)在IOS 6.1模擬器或設備,它會崩潰,具有日誌:
測試[699:C07] * - [T1TopViewController2 isKindOfClass:]:發送到釋放實例的消息0x75ade30
我真的不知道我的代碼有什麼問題,以及如何解決它。我會非常感謝任何幫助。
p.s.開發環境是mac os x 10.8.4,xcode 4.6.3。該項目啓用ARC。