iOS 在NSObject子類的執(zhí)行代碼中實現(xiàn)UIViewController的跳轉(zhuǎn)

在iOS開發(fā)中, 要實現(xiàn)UIViewController之間的跳轉(zhuǎn),通過navigationController的pushViewController或者UIViewController自身的presentViewController的方式即可。但要求是從一個UIViewController跳到另外一個UIViewController中。如果要從NSObject子類的執(zhí)行代碼中做跳轉(zhuǎn)至UIViewController的操作, 要如何實現(xiàn)呢?
首先, 說明下為何會有這樣的需求, 即: UICollectionView -> NSObjectSubclass -> UIViewController:
設(shè)置UICollectionView的datasource和delegate為一個NSObject的子類, 用于處理所有跟UICollectionView的datasource和delegate相關(guān)的邏輯關(guān)系. 那么在該類的執(zhí)行代碼中可能有調(diào)轉(zhuǎn)到另一個UIViewController的使用場景. 此時, 不能使用pushViewController, 因self根本就沒有navigationController屬性;也不能使用presentViewController, self不是UIViewController的子類。
解決方式可以考慮一下兩種:

delegate的方式

delegate是iOS中非常常見的方法. 設(shè)置UICollectionView的xxxDelegate為該NSObjectSubclass, 實現(xiàn)其中的方法xxxDelegateMethod1, 然后在NSObjectSubclass的執(zhí)行代碼中調(diào)用xxxDelegate的xxxDelegateMethod1方法. 該方法的實現(xiàn)在UICollectionView(包含navigationController屬性)中, 因此在其中可以實現(xiàn)UIViewController之間的正常跳轉(zhuǎn).

rootViewController

在NSObjectSubclass的執(zhí)行代碼中, 先獲取當(dāng)前的rootViewController, 在做UIViewController之間的跳轉(zhuǎn):

UIViewController *rootViewController = [[[UIApplication sharedApplication] keyWindow] rootViewController];
[rootViewController presentViewController:filterCourseViewController animated:NO completion:nil];

最終, 要實現(xiàn)UIViewController之間的跳轉(zhuǎn), pushViewController或presentViewController的執(zhí)行代碼所處的類self必須要有navigationController屬性, 或者必須是UIViewController的子類.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • *7月8日上午 N:Block :跟一個函數(shù)塊差不多,會對里面所有的內(nèi)容的引用計數(shù)+1,想要解決就用__block...
    炙冰閱讀 2,738評論 1 14
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,430評論 4 61
  • 花,開了一季,靜靜飄落塵埃,姹紫于嫣然,卻在驀然回首時,敲成了一首首詩!山一程,水一程,一邊拾起,卻一邊丟棄,灑滿...
    鐵桿同學(xué)閱讀 235評論 0 2
  • 這一天對我來說喜憂參半。 憂的是總被一些奇怪的夢拖在床上,沒錯,早上十點(diǎn)起的床… 喜的是下午達(dá)到了百分之九十的專注...
    二十九畫生閱讀 153評論 0 0
  • YYWebImage的使用
    指尖的跳動閱讀 181評論 0 0

友情鏈接更多精彩內(nèi)容