在视图控制器中设置表格视图
Posted
技术标签:
【中文标题】在视图控制器中设置表格视图【英文标题】:set table view in View controller 【发布时间】:2014-01-23 22:11:35 【问题描述】:这是我的问题。我创建了一个视图控制器,并在其中插入了一个表格视图(带有一个单元格)。我在视图控制器的底部还有一个文本字段。目的是将我在文本字段中写的文本放入单元格中。我尝试了很多东西,但没有结果。 谁能帮帮我?
这是我的代码(我无法显示 NSLog)
My .h
@interface RBChatViewController : UIViewController<UITextFieldDelegate,UITableViewDelegate,UITableViewDataSource>
@property (strong, nonatomic) IBOutlet UITextField *entryTextField;
@property (strong, nonatomic) IBOutlet UITableView *tableview;
My .m
#import "RBChatViewController.h"
@interface RBChatViewController ()
@end
@implementation RBChatViewController
- (void)viewDidLoad
[super viewDidLoad];
self.entryTextField.delegate=self;
self.tableview.delegate=self;
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
NSLog(@" numberofsections");
return 1;
【问题讨论】:
您需要发布您尝试过的内容并解释您遇到的问题。 【参考方案1】:如果没有看到你的代码,很难告诉你发生了什么,但这段代码应该可以工作。
-(void)addTextToTable
//method runs when you push a button to say i am done writing in text field
NSString *textFeildText = self.textFeild.text; //create string of textfeild text
[self.mutableArray addObject:textFeildText]; //add string to dataSource array
[self.table reloadData]; // update table with new data to show the new string that is created
编辑这是您需要添加的内容。
My .h
@interface RBChatViewController : UIViewController<UITextFieldDelegate,UITableViewDelegate,UITableViewDataSource>
@property (strong, nonatomic) IBOutlet UITextField *entryTextField;
@property (strong, nonatomic) IBOutlet UITableView *tableview;
@property (nonatomic) NSMutableArray *mutArray; // array of object that will be in the tableview
My .m
#import "RBChatViewController.h"
@interface RBChatViewController ()
@end
@implementation RBChatViewController
- (void)viewDidLoad
[super viewDidLoad];
self.entryTextField.delegate=self;
self.tableview.delegate=self;
self.tableview.dataDelegate = self; // ADD THIS, this means that the data for the tableview is gather from here This will also display your NSLog
_mutArray = [[NSMutableArray alloc] init]; //create your mutable array
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
NSLog(@" numberofsections");
return 1;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
//tells how many rows in your tableview based on object in array
return _mutArray.count;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
NSString *string = [_mutArray objectAtIndex:indexPath.row];
cell.textLabel.text = string;
return cell;
【讨论】:
是的,我忘记了 self.tableview.datasource = self;【参考方案2】:你应该拥有tableView
和 textField 属性,
您必须实现tableView
的delegate
和datasource
方法。在cellForRowAtIndexPath
中设置cell.titleLabel.text = self.textField.text
,并从textFieldDidChangeText
调用[tableView reloadata];
,或者如果您有一些按钮,请在该按钮操作中添加重新加载代码。
【讨论】:
以上是关于在视图控制器中设置表格视图的主要内容,如果未能解决你的问题,请参考以下文章