2011-05-06 40 views
0

我只是不明白意見的事情,不知何故找不到一個明確的解決方案。爲什麼我的觀點相互重疊?

我有一個視圖「A」,它有一個按鈕可以轉到另一個視圖「B」。視圖B帶我查看C並查看C帶我回到A.

在視圖C中,無論用戶點擊什麼,他都會看到圖像出現。代碼是在C的.m文件中。

問題是,當我從視圖C切換到A時,C的代碼仍然在視圖A上工作?如果我點擊A,我可以在任何地方看到圖像,但A是我的菜單,不屬於遊戲的一部分。使圖像出現在水龍頭上的方法僅屬於查看C!

我無法理解這些觀點;在開始我使用insertSubview:atIndex:,並且一切都重疊,所以現在我使用addSubview:,我有這個問題。

有人可以從幾何上解釋這是如何工作的嗎?

在視圖中看到視圖C中的按鈕怎麼沒有理由地看到A somtimes?爲什麼在加載C並返回給A之後,它在視圖A上實現了C的代碼?

爲什麼我的觀點一直重疊?我希望每個視圖都單獨工作,並且不會從視圖背後的視圖中看到任何內容,也不需要從過去加載的視圖實現代碼。

請幫我看看我的意見。非常感謝。

+0

你有沒有試過甚至讀一些關於這個東西的基本教程? – DavidN 2011-05-06 22:51:39

+0

湯姆是對的 - 你應該看看使用視圖控制器向用戶呈現不同的視圖。但在此期間,你真的可以發佈你的代碼嗎?否則很難說出了什麼問題。 – CharlieMezak 2011-05-06 23:08:54

回答

1

而不是視圖,你可能想專注於UIViewControllers。有了這個,你不會有這個問題,一個UIViewController幾乎總是全屏,你可以專門爲它編寫代碼。你可以創建三個UIViewController子類,一個用於A,B和C.在每個nib中你可以添加一個按鈕,並用它來呈現下一個視圖控制器(可能使用presentModalViewController :)。在第三個子類中,您可以實現用戶點擊時顯示圖像的邏輯。

+0

謝謝。湯姆這正是我所做的。是的,我讀了很多關於意見。 – Curnelious 2011-05-07 10:53:56

0

一個很好的做法,讓我們說你有一個

的UIViewController *有3個屬性myViewController :

的UIView * viewA

的UIView * viewB

的UIView * viewC

當你想要顯示viewA時,只需設置

myViewController.view = viewA;

等等!

+0

這正是我所做的,但viewC的.m文件繼續運行,而我已經顯示另一個視圖與另一個.m文件。所以它是如何工作的呢?如果我確實加載了一些.m,然後加載了另一個連接到另一個.m的視圖,那麼第一個.m仍然在工作? – Curnelious 2011-05-08 07:00:21

+0

所以在不需要的時候釋放視圖對象,這也是一個很好的做法,儘量保持內存中對象的數量儘可能少 – flovilmart 2011-05-08 16:10:38