2013-02-01 77 views
1

我有一個應用程序UITabBarController,幾個UINavigationController嵌套在它和UITableViewController在這些導航控制器的子類。當我嘗試將新創建的UITableViewController推送到現有的帶有現有tableView的導航控制器中時,該應用程序將掛起,並且Instruments會通過調用[UIWindow _subtreeMonitorsForView:]來反覆分配某些內容,無論如何。推UITableViewController到導航堆棧失敗

我推控制器在一個非常簡單的方法,只是:

_orderForm = [[OrderFormViewController alloc] init]; 
[self.navigationController pushViewController:_orderForm animated:YES]; 

如果我改變它,這樣我把一個普通的UIViewController而不是表的,它工作得很好。也就是說,如果我只是將OrderFormViewController.h文件中的聲明從UITableViewController更改爲UIViewController,並且它向我顯示空白視圖,則不會掛起。可能是什麼問題呢?

請注意,OrderFormViewController.h的內容非常簡單,只包含標準的內置函數。我嘗試推送UITableViewController(在用於初始化UINavigationController時工作正常)的不同子類,結果相同 - 應用程序掛起並保持進食記憶。

+0

你必須推它嗎?如何使用presentModalViewController方法? – GabCas

+0

'pushViewController'和'presentViewController'產生相同的結果,實際上 – SaltyNuts

+0

你使用xibs還是storyboard? – Firo

回答

1

我發現了這個和其他一些類似的代理錯誤的罪魁禍首。這是我在我的應用程序委託實例我控制器之前,這樣的事實:

UIView *bg = [[UIView alloc] initWithFrame:CGRectZero]; 
bg.backgroundColor = [UIColor whiteColor]; 
[[UITableView appearance] setBackgroundView:bg]; 

一些關於使用[UITableView appearance]只是不與代碼的路線發揮出色,包括暫時無法在任何變化使用UIDatePicker(儘管UIPickerView仍然有效,這隻會讓我更加困惑)。

由於某種原因,整個UIAppearance協議,儘管聽起來很有希望,但有一些問題,這不是我第一次發現它是導致一些奇怪的錯誤的原因。擺脫它使一切工作完美。

+0

過去5個小時我被卡住了。我在AppDelegate中定義了所有的附屬代理,當我評論它時,其他所有工作都像魅力一樣! –