1. 程式人生 > 其它 >iOS Texture <AsyncDisplayKit> ASViewController

iOS Texture <AsyncDisplayKit> ASViewController

技術標籤:Textureiosxcodeobjective-c

ASViewControllerUIViewController的一個子類,它為承載ASDisplayNode層次結構添加了一些有用的特性。

ASViewController可以代替任何UIViewController,包括UINavigationControllerUITabBarControllerUISplitViewController,或者作為modal view controller使用。

使用ASViewController的好處:

  • 節省記憶體。一個離開螢幕的ASViewController將自動減小fetch

    資料的大小及其任何子物件的顯示範圍。這是大型應用程式中記憶體管理的關鍵。

  • ASVisibility功能。當在ASNavigationControllerASTabBarController中使用時,這些類知道使檢視控制器可見所需的使用者點選次數。

隨著時間的推移,會新增更多的特性,因此最好將檢視控制器從這個類中分離出來。

使用

UIViewController提供自己的檢視。ASViewController在其指定的initializer中分配了一個要管理的node -initWithNode:。

考慮下面的ASViewController子類PhotoFeedNodeController

,它來自ASDKgram示例專案,它希望使用 table node 作為其託管node。

此 table node 在其-initWithNode:指定的初始值設定項方法中被分配給ASViewController

- (instancetype)init
{
  _tableNode = [[ASTableNode alloc] initWithStyle:UITableViewStylePlain];
  self = [super initWithNode:_tableNode];
  
  if (self) {
    _tableNode.dataSource = self;
    _tableNode.
delegate = self; } return self; }

轉換提示:如果你的應用程式已經有一個複雜的檢視控制器層次結構,那麼最好將它們都作為viewcontroller的子類。也就是說,即使您不使用ASViewController指定的初始值設定項initWithNode:,並且只以傳統的UIViewController的方式使用ASViewController,如果您選擇在應用程式的不同區域採用它,這將為您提供額外的節點支援。