从自定义类和UIViewController继承委托方法(Objective C)

时间:2016-08-10 08:35:05

标签: ios objective-c uitableview ipad uiviewcontroller

我有一个主控制器,它实现了自定义类的方法。现在在主控制器中,我想在警报视图中添加一个表,我需要为其实现UITableView委托方法。我想实现类似下面的内容

enter image description here

单击Click Here按钮,将显示一个警报视图,其中包含一个显示所有项目的表。

CustomController定义如下

@interface CustomController : UIViewController

PRESENT

.h文件中的

@interface mainController : CustomController<CustomDelegateMethod>

.m文件中的

@interface mainController()

REQUIRED

.h文件中的

@interface mainController : CustomController<CustomDelegateMethod>

//我想将UIViewController<UITableViewDelegate, UITableViewDataSource>添加到上一行。

MainController中的AlertView代码:

UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"List of Items" message:nil delegate:self cancelButtonTitle:@"Back" otherButtonTitles:@"Add New Item", nil];

    tableView = [([UITableView alloc])initWithFrame:CGRectZero style:UITableViewStyleGrouped];
    tableView.delegate = self;
    tableView.dataSource = self;
    tableView.backgroundColor = [UIColor clearColor];
    [av addSubview:tableView];
    [av show];

如何从不同的控制器实现委托方法? 因为当我添加 @interface mainController : CustomController<CustomDelegateMethod>,UIViewController<UITableViewDelegate, UITableViewDataSource> 它抛出错误Expected identifier or '(' 如果我添加像这样的tableview委托方法 @interface mainController : CustomController<CustomDelegateMethod,UITableViewDelegate, UITableViewDataSource>,运行应用程序时不调用委托方法。

1 个答案:

答案 0 :(得分:0)

尝试:

<。>文件中的

@interface mainController : CustomController
<。>文件中的

@interface mainController() <CustomDelegateMethod,UITableViewDelegate, UITableViewDataSource>

@property(nonatomic,strong)UITableView * tableView;

@end

UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"List of Items" message:nil delegate:self cancelButtonTitle:@"Back" otherButtonTitles:@"Add New Item", nil];

UITableView *tableView = [([UITableView alloc])initWithFrame:CGRectZero style:UITableViewStyleGrouped];
tableView.delegate = self;
tableView.dataSource = self;
tableView.backgroundColor = [UIColor clearColor];
self.tableView = tableView;
[av addSubview:tableView];
[av show];