簡體   English   中英

選項卡式應用程序中用於視圖控制器的其他NIB

[英]additional NIB for view controller in tabbed app

{使用ARC,Xcode 4.2,部署目標是iOS4.3,而不是故事板}

我從選項卡式應用程序模板開始,選擇了通用平台,該平台很好地為我提供了兩個選項卡的iPhone( ClassName_iPhone.xib )和iPad( ClassName_iPad.xib )的NIB文件視圖,以及AppDelegate中的if語句確定要運行的內容-正是我想要的設置方式。

我想添加第3個和第4個標簽,因此從第3個標簽開始(一次做1個),我創建了一個新的UIViewController子類。 由於它沒有一次創建兩個NIB的選項,因此我選擇了“ Targeted for iPad”,並且打算手動創建iPhone NIB。 我在創建的NIB文件中添加了“ _iPad”后綴,然后在用戶界面視圖NIB文件中添加了“ _iPhone”后綴。 然后,我在AppDelegate實現文件中為新視圖控制器設置代碼,以包括第3個視圖控制器和選項卡,並且我使用其他視圖控制器類作為指導來設置新類的代碼。

對於第三個_iPhone NIB,我將視圖對象從對象庫中拖動到畫布上,並按照其他兩個_iPhone NIB進行設置。 但是當我去連接插座時,我認為應該連接的連接面板的參考插座中沒有可視插座。 在這一點上,我懷疑出現了問題。

在此處輸入圖片說明

我嘗試在模擬器中運行它,在iPad模式下可以正常工作(所有3個選項卡均可單擊)。 但是在iPhone模式下,單擊第3個選項卡會使其崩潰,並在線程1上顯示“ SIGABRT”。很明顯,我沒有執行任何操作。 我在輸出窗口中看不到任何提示。

作為obj-c的新手,因此不太確定這個問題,我會以為我要么:

  • 使用了錯誤的用戶界面模板(查看)
  • 應該使用了對象庫中的視圖控制器對象(不是視圖)
  • 或者我應該在我的視圖控制器類文件中聲明一些出口。

但是,如果我應該完成后兩個中的任何一個,那么我的問題是,為什么iPad NIB可以正常工作,當它在NIB中明顯具有視圖對象並且類文件中沒有聲明出口時(與其他2個視圖相同)兩個設備的控制器)?

UITabView類是否在前兩個選項卡中以某種方式預先聲明了插座? 但這仍不能解釋_iPad NIB為何起作用。

像往常一樣,任何幫助和建議都將不勝感激,並且如果有我想念的地方的解釋鏈接,請告訴我,因為我很高興進行研究。

如果我做錯了什么是不確定的,那么我想我最終要問的是如何為iPhone創建第二個NIB文件以與使用iPad NIB創建的類相嚙合的最佳線索。

很抱歉回答我自己的問題,但是通過進一步搜索,我發現這個答案是解決方案,盡管還不是全部。 因此,我想把我所做的事情總結一下,以便其他人可以參考。

在此處輸入圖片說明

正如Piotr Czapla在鏈接的答案中解釋的那樣,由於某些原因,Xcode不會填充connectionRecords數據,正如您通過我的第一個紅色箭頭所看到的那樣。 看一下工作正常的視圖控制器(第二個紅色箭頭在其中),這就是數據的外觀。 因此,答案是剪切數據並將其粘貼到NIB文件中,或鍵入它。 您可以在Xcode中執行此操作,方法是右鍵單擊項目導航器中的NIB文件,然后單擊“打開方式”>“源代碼”,這就是您在屏幕快照中看到的內容。

我想在Piotr Czapla的說明中添加的一點是,第二個紅色箭頭指向的目標引用可能與您要粘貼的NIB文件不正確(不是我的)並且Xcode可能不允許您返回IB模式。 如果是這樣,則需要從NIB文件中的IBUIView類獲取正確的引用,如第三個紅色箭頭所指出的那樣。 將引用復制到目標引用ref =后,如第四個紅色箭頭所示,一切正常,問題已解決。 然后,我可以返回到IB模式(右鍵單擊,打開方式> Interface Builder-iOS),然后視圖在模擬器中工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM