我是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)分配给表视图?
答案 0 :(得分:2)
我现在如何将此数组(tableViewArray)分配给表视图?
你没有指定&#39;一个数组到表,你使用一些魔术与代表。符合.h中的UITableViewDataSource
和UITableViewDelegate
,如下所示:
@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
中的委托和属性