【问题标题】:set delegate and data source of UItableview in custom UIview在自定义 UIview 中设置 UItableview 的委托和数据源
【发布时间】:2014-09-01 04:46:39
【问题描述】:

我有一个自定义的UIView,它有几个不同的视图,还有一个UITableview

我创建了一个自定义类,它是UITableViewController 的子类。这将控制UITableviewUITableView 的原型单元。

如果我将 delegatedatasource 设置为父视图,我会收到以下错误:

-[RoadSafetyAppViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x10c92f190

其中 RoadSafetyAppView Controller 是父视图。但是,如果我根本不设置委托和数据源,我的表不会加载我在自定义类中声明的图像,如下所示:

@implementation MenuController
@synthesize menuArray;

-(void) viewDidLoad
{
    [super viewDidLoad];


    self.menuArray = [NSMutableArray arrayWithCapacity:4];
    [menuArray addObject:[UIImage imageNamed:@"Dob in a Hoon menu.png"]];
    [menuArray addObject:[UIImage imageNamed:@"Report a Hazard menu.png"]];
    [menuArray addObject:[UIImage imageNamed:@"Old Logo menu.png"]];
    [menuArray addObject:[UIImage imageNamed:@"Council Website menu.png"]];
}


-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}


-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [self.menuArray count];
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"CellIdentifier";
    MenuCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];


    cell.menuImage.image =[UIImage imageNamed:@"Dob in a Hoon menu.png"];

    switch (indexPath.row) {
        case 0:
            cell.menuImage.image =[UIImage imageNamed:@"Dob in a Hoon menu.png"];
            break;
        case 1:
            cell.menuImage.image =[UIImage imageNamed:@"Report a Hazard menu.png"];
            break;
        case 2:
            cell.menuImage.image =[UIImage imageNamed:@"Old Logo menu.png"];
            break;
        case 3:
            cell.menuImage.image =[UIImage imageNamed:@"Council Website menu.png"];
            break;
        default:
            break;
    }


    return cell;
}

有人可以指出我的图像哪里出了问题,或者我需要将我的委托/数据源设置为什么吗?

谢谢。

【问题讨论】:

  • 看起来您应该将 delegatedataSource 设置为您的 MenuController 实例,而不是 RoadSafetyAppViewController
  • RoadSafetyAppViewControllerMenuController 的父级吗?将delegatedatasource 设置为MenuController 并检查。
  • menuArray 初始化了吗?

标签: ios objective-c uitableview uiview


【解决方案1】:

At your MenuController.h

MenuController : UIViewController<UITableViewDelegate,UITableViewDataSource>

并在 Interface Builder 中将 UITableView 与 Delegate&Datasource 连接起来..

希望它能解决您的问题..!

【讨论】:

  • 我无法控制+从 tableview 拖动到 Delegate 或 Datasource。
  • 您需要像上面一样声明 Delegates 以使其从 tableview 控制+拖动到 Delegate & Datasource...!
  • 我已经按照您的建议修改了我的 .h 文件,但仍然无法从我的表格视图数据源拖动到表格视图。
  • 您是否在 Interface Builder 中将文件所有者设置为 MenuViewController..PLZ 检查..这可能是问题..!
  • 我愿意,但加班我离开身份检查员,自定义类变回 UITableview。
【解决方案2】:

在MenuController的viewDidLoad方法中编码设置delegate和datasouce

_tblView.delegate = self;
_tblView.dataSource = self;

【讨论】:

  • 由于某种原因,我不能这样做,我无法将我的 IBoutlet 链接到 tableview。控制+拖动不允许我在我的 .hfile 中选择 iboutliet
猜你喜欢
  • 1970-01-01
  • 2011-09-21
  • 2012-07-01
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 2012-06-25
  • 1970-01-01
  • 2016-02-29
相关资源
最近更新 更多