如何在Xcode 4.2中设置表视图的内容?

时间:2012-03-31 23:45:19

标签: iphone objective-c ios xcode ios5

我是iOS开发的新手,但不是编程。

我正在尝试创建一个简单的应用程序。我打开了Xcode 4.2并创建了一个新的主视图应用程序。我想要做的是在母版页中设置表视图的内容。

我已经编辑了我的控制器头文件:

#import <UIKit/UIKit.h>

@interface MyAppMasterViewController : UITableViewController

{
    NSArray *tableViewArray;
}

@property (nonatomic, retain) NSArray *tableViewArray;

@end

我在控制器实现中合成了tableViewArray变量:

#import "MyAppMasterViewController.h"

@implementation MyAppMasterViewController

@synthesize tableViewArray;

我在viewDidLoad方法中加载了一个NSArray isntance:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSArray *array = [[NSArray alloc] initWithObjects:@"Apple", @"Microsoft", @"HTC", nil];
    self.tableViewArray = array;
}

我现在如何将此数组(tableViewArray)分配给表视图?

2 个答案:

答案 0 :(得分:2)

  

我现在如何将此数组(tableViewArray)分配给表视图?

你没有指定&#39;一个数组到表,你使用一些魔术与代表。符合.h中的UITableViewDataSourceUITableViewDelegate,如下所示:

@interface MyAppMasterViewController : UITableViewController <UITableViewDelegate,UITableViewDataSource>

为表分配您的类作为委托(很可能在-viewDidLoad中):然后,您的表视图将查询所有重要的-cellForRowAtIndexPath方法,您可以在其中设置标题像这样的单元格:

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

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [_documentTableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    cell.textLabel.text = [array objectAtIndex:indexPath.row];
    return ( cell );

}

答案 1 :(得分:1)

你没有。表视图会根据需要逐个询问您在表视图中的单元格。表视图还会询问有多少个单元格,有多少个单元以及其他一些关于它的行为的东西。

表视图如何知道从哪个实例询问此信息?它有一个名为delegate的属性。您将表视图上的委托设置为viewController实例,然后选择从视图控制器实例中的UITableViewDatasource协议实现所需的方法。

详细了解Objective-C

中的委托和属性