为什么我的UITableView显示器不会?

时间:2012-01-04 21:14:08

标签: objective-c xcode uitableview

我在stackoverflow上搜索并搜索了这些内容,但未能找到解决方案。

我期待发生的事情: UITableView显示并显示包含“hi”的单元格

会发生什么: UITableView甚至无法显示

viewViewController.h

#import <UIKit/UIKit.h>

@interface viewViewController : UIViewController

@property (strong, nonatomic) IBOutlet UITableView *tableView;
//note: the above property is connected to my UITableViewController

@end

viewViewController.m

#import "viewViewController.h"

@interface viewViewController ()

@end

@implementation viewViewController
@synthesize tableView = _tableView;

- (UITableView *)tableView
{
    if (!_tableView){

        _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];
    }
    return _tableView;
}

- (void)viewDidLoad
{
    [super viewDidLoad];


    //_tableView = [[UITableView alloc] init];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
    //[self setTableView:nil];
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    //warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 2;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSLog(@"asking for rows");
    //#warning Incomplete method implementation.
    // Return the number of rows in the section.
    switch (section)
    {
        case 0:
            return 5;
        case 1:
            return 10;
            break;
        default:
            return 0;
            break;
    }
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }
    cell.textLabel.text = @"hi";
    return cell;

}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return @"testtext";
}


@end

请告诉我我做错了什么并纠正我的代码。

3 个答案:

答案 0 :(得分:5)

  1. 向视图控制器添加一些协议:

    @interface viewViewController:UIViewController

  2. 检查以确保您将delegatedatasource属性从tableView连接到文件所有者。

答案 1 :(得分:1)

UITableView连接到您的实例变量的意思并不清楚。如果您的意思是从XIB接线,那么您可能会从您创建的重写的getter方法中获得“干扰”。您可能希望放置一个NSlog以查看是否正在调用该方法。如果是这种情况,您分配/邀请的新表视图的框架大小为零,我在代码中没有看到您更改框架大小的任何内容。

祝你好运!

答案 2 :(得分:0)

尝试继承UITableViewController而不是UIViewController。