2013-03-09 41 views
0

在代碼的viewDidLoad部分中確定[self viewDidAppear:YES];是否確保viewDidAppear代碼段將運行?[self viewDidAppear:YES];

根據我們用戶的一小部分反饋,無論出於什麼原因,我在主菜單視圖的viewDidAppear部分中編寫的代碼都沒有運行 - 但它對大部分用戶和我所有的測試。我希望通過添加[self viewDidAppear:YES];這將解決這個問題,因爲某些原因,這些設備沒有叫viewDidAppear ...

你們認爲什麼?

回答

4

如果視圖控制器嵌套在另一個視圖控制器中並在較早的操作系統上運行,ViewDidAppear可能不會被調用。在iOS 5之前,委託命令並不總是被轉發給子控制器。

+0

我會問這些人是否可以告訴我他們正在運行哪個操作系統......並且希望每個人都能更新他們的設備! – RanLearns 2013-03-09 05:36:45

+0

得到了一個人的電子郵件回覆,這個問題確實在他們的iPad上運行4.3.3。不知道有多少用戶沒有升級他們的操作系統...... – RanLearns 2013-03-11 16:32:53

+0

統計上並不多,但總是有幾個。 – Dancreek 2013-03-11 19:40:02

5

我個人認爲這是一個可怕的想法。我認爲你最好找出爲什麼viewDidAppear沒有執行該用戶的子集。你可能只是通過「修復」看起來是錯誤的東西來治療更大問題的症狀。

+0

任何想法爲什麼viewDidAppear不會執行? – RanLearns 2013-03-09 05:06:27

+0

我添加視圖:UIViewController * nextController = [[MainMenuController alloc] initWithNibName:@「MainMenuController」bundle:nil]; [nextController performSelector:@selector(setDelegate :) withObject:self]; [self.view addSubview:nextController.view]; – RanLearns 2013-03-09 05:06:43

1

你不應該直接調用委託方法。

+0

也許你可以擴大這個答案並解釋爲什麼? – Kev 2013-03-09 11:20:43