使用两个继承类创建故事板屏幕

时间:2016-01-15 17:14:00

标签: ios objective-c inheritance tableview viewcontroller

我是iOS编程的新手,我遇到了在一个屏幕上连接两个独立屏幕模型的问题。我有一个表视图和典型的视图控制器。当我想要这个屏幕的控制元素时,我需要两个单独的类,其中一个继承自UITableView,第二个来自UIViewController,因为在Objective-C中我无法创建继承自其他两个类的类。如何从视图控制器类控制表视图的类。我必须说,这个简单的构图并不能解决我的问题,因为我不知道如何将动态类与屏幕模型联系起来。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您必须使用UITableViewDelegate和UITableViewDataSource

@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>

@end

为您的UITableView .delegate和.datasource设置或在故事板中链接

答案 1 :(得分:0)

感谢您的帮助,但这个答案必须完成,因为在视图代码控制器中必须添加少量功能:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return [regions count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Number of rows is the number of time zones in the region for the specified section.
    Region *region = [regions objectAtIndex:section];
    return [region.timeZoneWrappers count];
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    // The header for the section is the region name -- get this from the region at the section index.
    Region *region = [regions objectAtIndex:section];
    return [region name];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *MyIdentifier = @"MyReuseIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:MyIdentifier]];
    }
    Region *region = [regions objectAtIndex:indexPath.section];
    TimeZoneWrapper *timeZoneWrapper = [region.timeZoneWrappers objectAtIndex:indexPath.row];
    cell.textLabel.text = timeZoneWrapper.localeName;
    return cell;
}