2014-11-24 29 views
0

我在屏幕上兩種觀點(故事板的場景),但我想要的「View A的」 size/origin從「View B」改變。但我下面的代碼是不工作時,view仍然是相同的:iOS:如何從另一個視圖控制器類更改視圖大小/來源?

代碼添加到viewDidLoad從「View B

ViewA *viewA = [[ViewA alloc]init]; 
viewA.view.frame = CGRectMake(0,100,200,2000); 

如果有人能幫我會感激:)

+1

是viewA一個的UIView或UIViewController中?你如何從故事板加載它們?一些更多細節會有所幫助。 – 2014-11-24 17:23:15

+0

當然,這段代碼將不起作用,因爲您正在創建一個viewA的新實例,而沒有獲得您實際在屏幕上顯示的實例的引用。 – rdelmar 2014-11-24 17:32:25

+0

嗨蒂亞戈,它的UIViewController。我有一個主要的VC,我已經添加了視圖A並使用「insertSubview」查看B到它。 @TiagoLira – 2014-11-24 17:57:33

回答

0

我想從「查看B」

變「觀」的大小/產地有什麼關係 觀點?如果兩個視圖由不同的視圖控制器管理,那麼他們不應該直接對話。通常,一個可能與世界其他地方進行交流的視圖在它的委託上調用一個方法,該方法通常是管理它的視圖控制器。然後該視圖控制器將採取適當的行動 - 更新數據模型,向另一個視圖控制器發送消息,發佈通知等。應直接與給定視圖關聯的唯一對象是該圖的視圖控制器。

+0

您好威廉,我有兩個的UIViewController,我已經加入到使用「insertSubview」的主視圖控制器。我的主要目標是能夠滑動打開「視圖A」(哪個工作),但是當我從「視圖B」選擇一個表視圖行時,我無法使「視圖A」關閉回原點.x = 0, orgin.y = 0 – 2014-11-24 17:55:38

0

有可能是沒有足夠的細節給出很好的答案但是假設這些觀點,你可能會想從viewA動作連接到控制器,它會改變viewB的幀相同的視圖控制器的一部分。

假設這些觀點都有獨立的控制器,你會想該消息轉發給家長,並從那裏處理它的父是AppDelegate中。

如果假定在多個控制器來影響多種行爲的行動,那麼你可能還需要考慮NSNotificationCenter路線。

相關問題