Почему не отображается мой дисплей UITableView? - PullRequest
1 голос
/ 05 января 2012

Я гуглил и искал здесь на stackoverflow, но не смог найти решение.

То, что я ожидаю, произойдет: UITableView для отображения и отображения ячеек, содержащих "привет"

Что происходит: 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 ]

5 голосов
/ 05 января 2012
  1. Добавьте некоторые протоколы в контроллер представления:

    @ interface viewViewController: UIViewController

  2. Убедитесь, что вы подключаете1009 * и datasource свойства от tableView до Владельца файла.

1 голос
/ 05 января 2012

Непонятно, что вы подразумеваете под подключением UITableView к вашей переменной экземпляра. Если вы имеете в виду соединение с XIB, то, возможно, вы получаете «помехи» от созданного вами переопределенного метода получения. Вы можете поместить NSlog, чтобы увидеть, вызывается ли этот метод. если это так, то кадр нового табличного представления, который вы размещаете / приглашаете, имеет нулевой размер, и я не вижу в вашем коде, что вы меняете размер кадра.

удачи!

0 голосов
/ 05 января 2012

Попробуйте создать подкласс UITableViewController вместо UIViewController.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...