在选项卡式应用程序中从UITableView打开一个新的ViewController

时间:2014-07-16 15:11:18

标签: objective-c xcode uitableview

简介

所以我在xcode中创建了一个新的选项卡式应用程序并创建了一个带有nib设置等的新ViewController ......然后我从一个字符串数组中创建了一个ViewView中的TableView。这里的一切都很好。然后我想要一个新的ViewController在点击一个单元格时打开,并将单元格的标题(即数组中的字符串)传递给新的ViewController。所以我编写了一些代码,创建了一个新的ViewController,将nib添加到storyboard并将其连接到它的类(并给它正确的故事板ID)。但由于某些原因,当我点击一个单元格时,视图不会加载。我无法弄清楚为什么......我是否需要在故事板中做一些额外的设置?添加一个navigationController或什么?

我的代码

#import "CreationViewController.h"

@interface CreationViewController ()
@property (weak, nonatomic) IBOutlet UITableView *tableView;
@property (strong, nonatomic) NSArray *templateList;

@end

@implementation CreationViewController


- (void)viewDidLoad
{
    [super viewDidLoad];

    self.tableView.dataSource = self;
    self.tableView.delegate = self;
    self.templateList =  tempList;
    // tempList is defined by some code I removed but that's working fine
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [self.templateList count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"SimpleTableCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    }

    NSString *tweet = [self.templateList objectAtIndex:indexPath.row];

    cell.textLabel.text = [self.templateList objectAtIndex:indexPath.row];
    return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    TemplateViewController *dvc = [self.storyboard instantiateViewControllerWithIdentifier:@"TemplateViewController"];
    dvc.tweet = [self.templateList objectAtIndex:indexPath.row];
    [self.navigationController pushViewController:dvc animated:YES];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

0 个答案:

没有答案