两个不同的UIViews中的2个tableViews

时间:2014-02-03 10:38:07

标签: ios objective-c cocoa-touch uitableview

我的应用程序中有2个表,它们在不同的视图中都有不同的类。这两个类的代码几乎相同,但只有一个有效。

不起作用的是我的URLViewController。

URLViewController.h

#import <UIKit/UIKit.h>

@interface URLViewController : UIViewController <UITableViewDataSource>
{
    NSArray * tableData;
    NSArray * tableSubtitles;
}

@property (nonatomic, retain) NSArray * tableData;
@property (nonatomic, retain) NSArray * tableSubtitles;

@end

URLViewController.m

#import "URLViewController.h"

@interface URLViewController ()

@end

@implementation URLViewController
@synthesize tableData, tableSubtitles;

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bg.jpg"]]];

    tableData = [[NSArray alloc] initWithObjects:@"Location 1", @"Location 2", @"Location 3", @"Location 4", @"Location 5", @"Location 6", @"Location 7", @"Location 8", @"Location 9", @"Location 10", @"Location 11", @"Location 12", @"Location 13", @"Location 14", nil];

    tableSubtitles = [[NSArray alloc] initWithObjects:@"http://www.google.fi/", @"http://www.google.fi/", @"http://www.google.fi/", @"http://www.google.fi/", @"http://www.google.fi/", @"http://www.google.fi/", @"http://www.google.fi/", @"http://www.google.fi/", @"http://www.google.fi/", @"http://www.google.fi/", @"http://www.google.fi/", @"http://www.google.fi/", @"http://www.google.fi/", @"http://www.google.fi/", nil];
}

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell * cell = nil;

    cell = [tableView dequeueReusableCellWithIdentifier:@"Listaus"];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Listaus"];
    }

    //cell.textLabel.textColor=[UIColor whiteColor];
    //cell.detailTextLabel.textColor=[UIColor whiteColor];
    cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
    cell.detailTextLabel.text = [tableSubtitles objectAtIndex:indexPath.row];

    return cell;
}

@end

我现在所能得到的只是空白页。

为什么其他类的代码几乎完全相同,但这不是吗?有效的是我最初创建的那个。

2 个答案:

答案 0 :(得分:0)

viewDidLoad方法的末尾重新加载表格。 tableData方法在viewDidLoad方法之前的表格中不包含任何内容。因此,使用reloadData方法重新加载表。 另外,在viewDidLoad方法中,将self声明为表的委托和数据源。

答案 1 :(得分:0)

检查你的.h文件中的声明如下。

@interface DisplayViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>

Also Check if you have set delegate and datasource to tableview at xib like below