【问题标题】:Subclassing a UIViewController implementing UITableView delegate and datasource: code reuse子类化 UIViewController 实现 UITableView 委托和数据源:代码重用
【发布时间】:2011-01-01 03:58:00
【问题描述】:

我在 viewDidLoadviewWillAppear: 方法中有一些初始化代码,这些代码用于我的多个 UIViewController 子类(实现 ):

-(void)viewDidLoad {
    [super viewDidLoad];
    self.tableView = [[UITableView alloc] initWithFrame:CGRectZero
        style:UITableViewStylePlain];
    self.tableView.delegate = self;
    self.tableView.dataSource = self;
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
    [self.view addSubview:self.tableView];
    [self.tableView reloadData];
}

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    self.tableView.frame = self.view.bounds
}

我的想法是继承 UIViewController 并将这些方法包含在子类中,这样就不必在我的所有视图控制器中编写此代码。

您对此有何看法?我想知道这是否会导致保留 tableView 的问题。

干杯

【问题讨论】:

    标签: iphone uitableview ios uikit uiviewcontroller


    【解决方案1】:

    您是否考虑过这种结构:

    UIViewController -> your_First_Level_Subclass_View_Controller -> your_Second_Level_Subclass_View_Controller

    在第一级,你实现了那些可重用/tableView 相关的代码,但你实际上并没有使用这个第一级控制器。然后,您将这个 1 级子类化以创建您的 2 级控制器,这是您将要使用的终极控制器。

    【讨论】:

    • 是的,这就是我的想法。我只是意识到应用程序将增长到类将从不同父视图控制器继承不同功能的大小,并且我不希望 a) 3、4、5、...、N 级别 b) 开始跨我的第一级视图控制器。所以我认为另一种方式会更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 2012-07-01
    • 2016-07-27
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    相关资源
    最近更新 更多