2012-06-25 43 views
0

就像一個免責聲明,我是一個iOS初學者,處於一個非常獨特的位置。我是一名實習學習工作,對於測試應用程序的嚴格截止日期以及特定規格。所以我不幸沒有學習所有我應該關於xCode和客觀C的奢侈品。同時作用在屏幕上的兩個視圖控制器(帶有筆尖)

無論如何,我正嘗試創建一個類似於iPad的滑出菜單的導航菜單。我已經查看了大量針對過去這樣的問題給出的示例代碼。這一切都很好,但我不明白他們在做什麼。我認爲這是由視圖控制員和代表相當困惑的結果。而且,由於我本來應該自己寫這個,所以我不能僅僅依靠現有的代碼。

我的這項工作計劃是有一個主視圖控制器,在表格視圖中包含導航菜單。這隱藏在一個普通的UIView後面,直到按下一個按鈕,此時正常的UIView滑動到屏幕外足以顯示菜單。在選擇一個菜單項時,普通的UIView將滑回原來的位置,並被相關的UIView所取代,由其視圖控制器控制。換句話說,單擊與「Home」相關的菜單項會加載由homeViewController控制的homeViewController.xib。這將在tableView頂部的普通UIView子視圖中加載。

作爲按鈕按下的結果,我能夠在該普通UIView中加載視圖。

homeViewController *_homeViewController = [[homeViewController alloc]initWithNibName:@"homeViewController"]; 
[self frontView] = _homeViewController.view; 

該代碼可能存在一些語法錯誤,因爲它從內存中。我目前無法使用我的代碼訪問計算機,但這是一般要領。基本上,這將主視圖的筆尖放在frontView(即在桌面視圖上的普通UIView)上,但是它沒有連接到homeViewController。或者至少我認爲這是問題所在,當我按下按鈕時,它正確連接在筆尖和homeViewController.h之間,並且只在.m文件中設置爲NSLog,應用程序崩潰。

任何想法如何將這個筆尖連接到它的viewController時,以這種方式顯示?或者,要在IB中創建筆尖,而沒有關聯的.h和.m文件,並將主視圖控制器用作homeViewController?或者,如果我的邏輯本質上有缺陷,我該怎麼做?什麼與NavigationControllers?

編輯: 我還嘗試了一種新方法 - 將homeViewController的文件所有者更改爲viewController,並將homeViewController的操作按鈕連接到viewController。按下按鈕時也會導致崩潰。我真的認爲,問題在於讓多個視圖控制器一次在屏幕上執行操作,或者從一個視圖控制器一次控制多個視圖控制器同時控制多個視圖。

回答

0

我懷疑你眼前的問題是,_homeViewController被只要你留下任何方法的代碼中解脫出來。爲了解決這個問題,在這個類保存了_homeViewController,只要它認爲是創建一個strong屬性並將其分配給該屬性而不是局部變量。這樣,作爲該視圖一部分的按鈕(或其他)仍然有支持它們的有效控制器對象。

從長期來看,推或呈現視圖控制器,當你需要在屏幕改變是更好的策略,但是,正如我所說,眼前的問題...... :)

+0

當我嘗試,我得到兩個錯誤:帶有保留(或強)屬性的屬性必須是對象類型,而接口類型不能靜態分配。只是爲了澄清,你建議把屬性放在viewController.h中,對吧?另外,不會推動刪除底下的tableView?呈現不起作用,因爲我不一定想回到以前的相同觀點,對嗎? – CowGoes

+0

是的,在.h文件中。第二個錯誤消息聽起來好像你忘了'*'並試圖聲明類似'homeViewController controller;'的東西。我不確定第一個但也許是缺少的@class homeViewController;'。如果這些猜測不起作用,您可以將新代碼添加到您的問題中,我會看看它。 –

+0

我真的認爲我們在這裏走錯了路,因爲繼續嘗試從不同的角度處理這個問題(在我的主要帖子的編輯中概述)導致相同的結果。我真的認爲,我如何想象視圖和視圖控制器之間的相互作用,以及它們的實際操作方式之間存在着根本性的脫節。或者也許代表們讓我迷惑不解。 – CowGoes

相關問題