2013-01-21 78 views
0

我在爲iPad和iPhone開發應用程序時遇到了一個非常惱人的問題。將控制器推到UINavigationController在iPad上工作,但不在iPhone上

我希望我的導航控制器(由故事板設置)推動顯示一些詳細信息的視圖控制器。

下面這段代碼曾經工作過,但現在我在iPhone上按下控制器時遇到了黑屏,而完全相同的代碼在iPad上正常工作。所有使用的控制器都是非零值。會發生什麼是顯示使用導航控制器更改視圖的通常動畫,但之後只有黑屏。

ADetailViewController* detailController = 
    [self.storyboard instantiateViewControllerWithIdentifier:@"ADetailViewController"]; 
    exposeController.data = aRealEstate; 
    exposeController.appData = self.appData; 
    [self.navigationController pushViewController: detailController animated:YES]; 

我debuged一點到代碼後發現,該ADetailViewController類的viewDidLoad中被調用,但viewDidAppear不會被調用,這意味着詳細信息視圖顯示(因爲我也能通過黑屏注意到:-))

我很感激這種問題的提示。

UPDATE

我是自己來解決這個問題。原因是我內置到我的委託依賴項中的循環依賴項。這用於在rootView將被隱藏時彈出推送的視圖。

回答

1

您正在使用故事板,爲什麼不使用segues?

視圖控制器的所有實例都通過執行segue來完成。您可以在prepareForSegue:中方便地進行所有定製。

我相信你的錯誤是由iPhone和iPad故事板中的不同配置引起的。如果您決定使用segues,則推送視圖控制器的過程更加透明,您將能夠更輕鬆地找到問題。

+0

謝謝你的提示。事實上,現在我使用手動循環控制器之間的轉換,代碼感覺更好。不幸的是,這並沒有對「黑屏」問題做任何事情。 – MyP

+0

如果這有幫助,不要忘記勾選上面的複選標記。 – Mundi

+0

不幸的是,它並沒有幫助導航控制器不顯示任何我推送的視圖的問題。 – MyP

0

我對你有兩個建議:

  1. 您是否嘗試過清理你的項目?
  2. 也許ADetailViewController標識符不是UIViewController,可能是由於標識符已存儲在iPhone故事板的錯誤字段中。

好運

+0

嗨,謝謝你的回答。我多次清理了該項目,並從設備中刪除了該應用程序。 ADetailViewController是一個UITableViewController。控制器的初始化和加載按預期執行(我對它進行了嘗試......)。 – MyP

相關問題