我的TableView有一个奇怪的问题,总是设置为nil。我会解释更多:
这是我的故事板:
在我的BuddyListViewController.m文件中,我实例化了我的ChatViewController:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
userName = (NSString *) [onlineBuddies objectAtIndex:indexPath.row];
JCChatViewController *chatController = [[JCChatViewController alloc] initWithUser:userName];
[self presentViewController:chatController animated:YES completion:nil];
}
ChatViewController(.h)文件
@interface JCChatViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
UITextField *messageField;
UITableView *tView;
}
@property (nonatomic,retain) IBOutlet UITextField *messageField;
@property (nonatomic,strong) IBOutlet UITableView *tView;
-(id) initWithUser:(NSString *) userName;
-(IBAction)sendMessage;
@end
我还将tableView与我的tView属性
相关联ChatViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
self.tView.delegate = self;
self.tView.dataSource = self;
[self.tView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
}
在调试时,我总是将self.tView等于nil,非常离奇,因此,我的TableView Delegate方法不会被调用。
祝你好运
答案 0 :(得分:1)
在代码中创建 JCChatViewController 对象时,不会创建它的视图。如果您希望按照故事板中的描述创建视图,则有两种选择:
- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier
您可以从当前的视图控制器对象中获取故事板。 您还需要在故事板中为 JCChatViewController 指定一些 storyboard id 。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
应该在好友列表控制器中重写。