在開發(fā)過程中遇到一個奇葩情況迅腔,就是要點擊一個表單中的Label伦糯,然后進行頁面的跳轉
因為這個label控件是在一個自定義的tableViewCell類中的柜某,其響應的方法也是在這個自定義類的實現(xiàn)文件中,這就意味著在這個點擊事件中敛纲,self并不是我們想要的UIViewController對象喂击,而是自定義的cell類對象,所以這樣便無法調用到UIViewController的對象淤翔,使用其pushViewController方法進行頁面的跳轉翰绊。
后來發(fā)現(xiàn)一種方法,就是可以使用self的nextResponder方法來獲取上一級的類(這個表達應該有問題旁壮,但暫時這樣說),我們可以一級一級地往上查监嗜,知道查到類為我們想要的Viewcontroller類為止,代碼如下:
[objc] view plain copy 在CODE上查看代碼片派生到我的代碼片
id object = self;
while (![object isKindOfClass:[PMGWorkLoadViewController class]]) {
object = [object nextResponder];
}
UIViewController *vc = (PMGWorkLoadViewController *)object;
若想了解各一級的類是什么抡谐,我們可以在循環(huán)體中用NSlog方法將object對象打印出來查看裁奇。
這樣就可以獲取到上層的ViewController對象,利用其pushViewController方法進行頁面的跳轉了