Files
Texture/docs/_docs/asdkviewcontroller.md
Garrett Moon c5f69f0b01 Renames AS_EXTERN and ASViewController (#1876)
* Renames AS_EXTERN and ASViewController

To ASDK_EXTERN and ASDKViewController.
This is to avoid conflicting with AuthenticationServices in
Xcode 12

* Fix up examples and docs

* Add bit about updating ASViewController rename
2020-06-29 12:49:59 -07:00

1.6 KiB
Executable File

title, layout, permalink, prevPage, nextPage
title layout permalink prevPage nextPage
ASDKViewController docs /docs/ASDKViewController.html aspagernode.html

ASDKViewController is a direct subclass of UIViewController. For the most part, it can be used in place of any UIViewController relatively easily.

The main difference is that you construct and return the node you'd like managed as opposed to the way UIViewController provides a view of its own.

Consider the following ASDKViewController subclass that would like to use a custom table node as its managed node.

SwiftObjective-C
- (instancetype)initWithModel:(NSArray *)models
{
    ASTableNode *tableNode = [[ASTableNode alloc] initWithStyle:UITableViewStylePlain];
if (!(self = [super initWithNode:tableNode])) { return nil; }

self.models = models;

self.tableNode = tableNode;
self.tableNode.dataSource = self;

return self;

}

func initWithModel(models: Array<Model>) {
	let tableNode = ASTableNode(style:.Plain)

    super.initWithNode(tableNode)

    self.models = models
    
    self.tableNode = tableNode
    self.tableNode.dataSource = self
    
    return self
}

The most important line is:

if (!(self = [super initWithNode:tableNode])) { return nil; }

As you can see, ASDKViewController's are initialized with a node of your choosing.