iOS Texture <AsyncDisplayKit> ASViewController
技術標籤:Textureiosxcodeobjective-c
ASViewController
是UIViewController
的一個子類,它為承載ASDisplayNode
層次結構添加了一些有用的特性。
ASViewController
可以代替任何UIViewController
,包括UINavigationController
、UITabBarController
和UISplitViewController
,或者作為modal view controller使用。
使用ASViewController
的好處:
-
節省記憶體。一個離開螢幕的
ASViewController
將自動減小fetch
-
ASVisibility功能。當在
ASNavigationController
或ASTabBarController
中使用時,這些類知道使檢視控制器可見所需的使用者點選次數。
隨著時間的推移,會新增更多的特性,因此最好將檢視控制器從這個類中分離出來。
使用
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
,如果您選擇在應用程式的不同區域採用它,這將為您提供額外的節點支援。