在我的应用程序中,我一般不使用NavigationController。 在UITableView中我会这样做,会添加
[Self.view addSubview: self.myCustomHeaderView];
但我正在使用ASTableNode。如果我做了一些类似的事情:
- (instancetype)init {
_tableNode = [[ASTableNode alloc] init];
self = [super initWithNode:_tableNode];
if (self) {
_tableNode.dataSource = self;
_tableNode.delegate = self;
self.navigationItem = //navigationItem implement
UINavigationBar *navbar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
navbar.backgroundColor = [UIColor redColor];
navbar.items = @[self.navigationItem];
ASDisplayNode *navBarNode = [[ASDisplayNode alloc] initWithViewBlock:^UIView * _Nonnull {
return navbar;
}];
[self.node addSubnode:navBarNode];
}
return self;
}
然后这个节点作为列表的一部分添加,并与列表一起滚动,我需要它作为固定标题。
答案 0 :(得分:0)
使用ASDisplayNode
而不是ASTableNode
初始化,然后在VC的节点上添加表节点,例如:
@interface OCTextureTableController : ASViewController<ASDisplayNode *>
@property (nonatomic, strong) ASTableNode *tableNode;
- (instancetype)init
{
self = [super initWithNode:[ASDisplayNode new]];
if (self) {
self.tableNode = [[ASTableNode alloc] init];
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.tableNode.backgroundColor = [UIColor yellowColor];
self.tableNode.frame = CGRectMake(0, NAVIGATION_BAR_HEIGHT, SCREEN_WIDTH, SCREEN_HEIGHT-NAVIGATION_BAR_HEIGHT);
[self.node addSubnode:self.tableNode];
}
答案 1 :(得分:-2)
(i)将A类作为基类。 (ii)将B类作为具有A类的派生类。
现在在A类中添加一个uiview。这将被视为导航。(在该视图中做任何事情)
要使用相同的导航栏:您必须将其他所有类视为具有A类的类型。
是的。