单击单元格后创建列表

时间:2014-07-18 13:34:56

标签: ios uitableview

我一直在研究互联网,无法找到我需要的东西。基本上我想要做的是允许用户来到桌面视图控制器并从下面的列表中选择并选择你的品牌。选择品牌后,它会将值存储到单元格中,并允许您选择模型。如何在用户从上一个项目中选择后,以编程方式向用户显示更多选项。下面的照片有助于说明我的意思,我没有任何代码,因为我不知道从哪里开始。我提前感谢您的帮助!

enter image description here enter image description here enter image description here enter image description here

以下是我2014年8月14日的更新代码:

这是选择Make视图控制器:

#import "MakeTableViewController.h"


@interface MakeTableViewController ()

@end

@implementation MakeTableViewController {
    NSIndexPath *oldIndexPath;
}

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.carMakes = [[NSArray alloc] initWithObjects:@"Acura", @"Aston Martin", nil];
}

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

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    return [self.carMakes count];
}


- (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];
    }

    cell.textLabel.text = [self.carMakes objectAtIndex:indexPath.row];

    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView deselectRowAtIndexPath:indexPath animated:NO];

    AddCarTableViewController *controller = [[AddCarTableViewController alloc] init];
    controller.makeName = [self.carMakes objectAtIndex:indexPath.row];
    controller.makeLabel.text = controller.makeName;
    NSLog(@"%@", controller.makeName);
    [[self navigationController] popViewControllerAnimated:YES];

}

我的AddCarTableViewController代码是:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [super tableView:tableView cellForRowAtIndexPath:indexPath];

    self.makeLabel.text = self.makeName;

    return cell;
}

没有什么显示仍然是奇怪的。

1 个答案:

答案 0 :(得分:0)

问题是您正在AddCarTableVC上创建一个新实例并在其中设置make

您需要做的是获取对alreAdy可见实例的引用并在该实例上更新它。

您可以通过委托或共享数据模型来实现这一点。或者将对标签的引用传递给makeVc以进行设置(不是首选)

希望这有帮助。

我认为我们确实在另一个问题中确定了一个代表设置的问题。只需使用那个