我有一个空白UIView
的普通项目。后来,当我从我的服务中获得一些有用的信息时,我想创建UIView或UITableView
。
我有一个班级:
@interface MyTableViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource> {
}
我有AppDelegate
,ViewController
和.xib
文件。
我应该怎样加载UITableView
?我应该在AppDelegate中卸载我的标准ViewController或在View里面加载TableView作为子视图(可能吗?)或者我应该丢弃xib文件?当然,我想在我的观点中做的每件事都必须在程序上不使用IB。
在我的应用程序中,我想创建两者,取决于接收数据。
答案 0 :(得分:2)
我会创建一个uiview并在uiview中加载uitableview(rootViewController) 话虽如此,我假设你正在使用界面构建器(IB),它使事物更直观,易于操作。 如果需要,我会添加相关代码。
答案 1 :(得分:2)
你可以推UITableViewController或者UIViewController包含一个UITableView
或juse将tableView添加到UIViewController的当前视图
UITableView tableView = [[UITableView alloc] initWithFrame:self.view.bound];
[self.view addSubView:tableView];
答案 2 :(得分:2)
将此代码写入.h文件
@interface SelectPeopleViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
UITableView *tableView;
}
@property (nonatomic, retain) UITableView *tableView;
将Uitableview的数据源和委托添加到文件所有者
将此代码写入.m文件
#pragma mark Table view methods
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
// Customize the number of rows in the table view.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 5;
}
// Customize the appearance of table view cells.
- (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] autorelease];
}
// Set up the cell...
cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:15];
cell.textLabel.text = [NSString stringWithFormat:@"Cell Row #%d", [indexPath row]];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// open a alert with an OK and cancel button
NSString *alertString = [NSString stringWithFormat:@"Clicked on row #%d", [indexPath row]];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:alertString message:@"" delegate:self cancelButtonTitle:@"Done" otherButtonTitles:nil];
[alert show];
[alert release];
}
答案 3 :(得分:1)
是的,如果有必要向视图添加其他控件,可以将UITableView添加到UIViewController的UIVIew。
如果viewcontroller的视图中只有tableview,那么你也可以将它作为UITableViewController的子类。
答案 4 :(得分:0)
您可以在UIViewController中使用tableView
@interface MyViewController:UIViewController<UITableViewDelegate, UITableViewDataSource>
{
IBOutlet UITableView *mytableview;
}
@property(nonatomic,retain) IBOutlet UITableView *mytableview;
然后在viewController xib文件中创建一个tableview视图。将它连接到文件owner的mytableview。也不要忘记将委托和数据源设置为文件所有者。
稍后在.m文件中创建这些函数并根据您的数据进行修改。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1; //how many sections in your tableView
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection: (NSInteger)section
{
return [myArray count]; //how many rows you have
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MyCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell...
cell.textLabel.text = @"title";
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog("%d.row selected",indexPath.row);
}