gpt4 book ai didi

ios - 在另一个子类中使用 UIViewController 的子类属性作为 IBOutlet

转载 作者:行者123 更新时间:2023-12-01 18:21:36 25 4
gpt4 key购买 nike

我有一个 UIViewController 的子类,我们称之为 MySuperClass ,这个子类有一个 UITableView 比以编程方式初始化的属性。
现在我想继承 MySuperClass 我的子类 但这次我想通过 Interface Builder 而不是以编程方式设计 tableview。
我想要的是类似于 UIViewController 有效,如果您继承 UIViewController 它的 View 属性已经初始化,但是当您将它带入 IB 时,您可以将它链接到 Interface Builder 的 UIView 项目,我该怎么做?

我的父类(super class)的源代码类似于这个:

//interface

#import <UIKit/UIKit.h>

@interface MySuperClass : UIViewController <UITableViewDelegate, UITableViewDataSource>

@property (nonatomic, strong) UITableView *tableView;


//implementation


#import "MySuperClass.h"


@implementation MySuperClass

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {

[self initializeProperties];

}
return self;
}

- (void) awakeFromNib{

[super awakeFromNib];

[self initializeProperties];

}

- (void) initializeProperties{

self.tableView = [[UITableView alloc] initWithFrame: self.view.frame style: UITableViewStylePlain];
self.tableView.separatorColor = [UIColor clearColor];
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.delegate = self;
self.tableView.dataSource = self;

UIView *tableHeaderView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, self.view.frame.size.width, self.bannerView.frame.size.height+kBannerDistance)];

tableHeaderView.backgroundColor = [UIColor clearColor];

self.tableView.tableHeaderView = tableHeaderView;


}

最佳答案

只需“重新声明”@property在你的子类中。

#import <UIKit/UIKit.h>
#import "MySuperClass.h"

@interface MySubClass : MySuperClass

@property (nonatomic, strong) IBOutlet UITableView *tableView;

@end

编译器将足够聪明,可以理解您正在引用父类(super class)属性,并且 IB 链接到子类的属性没有问题。

关于ios - 在另一个子类中使用 UIViewController 的子类属性作为 IBOutlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16941783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com