如何通過View獲取Controller

2021-07-04 12:55:02 字數 790 閱讀 1801

我們知道,對於乙個檢視控制器類uiviewcontroller,可以通過[self view]來獲取到它所管理的檢視uiview,反過來,對於乙個檢視類uiview,我們怎麼獲取到它的uiviewcontroller?

uiview繼承自uiresponder,uiresponder有乙個例項方法- (uiresponder *)nextresponder,該方法返回響應鏈(responder chain)上的下乙個物件。

有關- (uiresponder *)nextresponder方法,更具體的說明可參考uiresponder class reference,主要有幾個重點:

1)uiresponder類不會自動儲存和設定它的下乙個響應者(the next responder),預設情況下nextresponder方法放回nil;

通過以上的分析,對於乙個檢視類uiview,我們可以利用- (uiresponder *)nextresponder方法遍歷響應鏈,獲取到它的uiviewcontroller,具體**:

[plain]view plain

copy

@implementation uiview (finduiviewcontroller)  

- (uiviewcontroller *)viewcontroller   

@end  

- (uiviewcontroller *)viewcontroller 

}return nil;

}

獲取當前View

在實際開發中layoutinflater這個類還是非常有用的,它的作用類似於findviewbyid 不同點是layoutinflater是用來找res layout 下的xml布局檔案,並且例項化 而findviewbyid 是找xml布局檔案下的具體widget控制項 如button textv...

在oncreate中如何獲取view的高度和寬度

在程式設計中我們時常需要獲取view的高度和寬度,下面有兩個方法來獲取view的寬高,getheight 和getmeasuredheight getheight 和getmeasuredheight 的區別 getmeasuredheight 獲取測量完的高度,只要在onmeasure方法執行完,...

獲取view寬高

在oncreate 中利用view.getwidth 或是view.getheiht 來獲取view的寬和高,看似沒有問題,其實他們去得值是0,並不是你想要的結果?這是為什麼呢?在呼叫oncreate 方法時,介面處於不可見狀態,記憶體載入元件還沒有繪製出來,你是無法獲取他的尺寸。那如何在繪製元件之...