通过点击按钮将tableViewCell添加到新的TableView

时间:2013-07-23 13:40:54

标签: ios uitableview tableview favorites

我想要的是,如果用户点击一个按钮,这些tableCell应该添加到一个新的tableView(你可以看到你的收藏夹)。

我有一个班级Car,其中合成了汽车的内容:

#import "Car.h"
@implementation Car
@synthesize name;
@synthesize speed;
@synthesize selected;

@end

CarsViewController包含一个tableView,您可以在其中找到每辆车:

@implementation CarsViewController {
    NSArray *cars;
}

@synthesize tableView = _tableView;

- (void)viewDidLoad
{
    Car *car1 = [Car new];
    car1.name = @"A1";
    car1.speed = @"200 km/h";
    car1.selected = FALSE;

  Car *car2 = [Car new];
    car2.name = @"A2";
    car2.speed = @"220 km/h";
    car2.selected = FALSE;

cars = [NSArray arrayWithObjects:car1, car2, nil];
}

最后CarDetailViewController有了收藏夹按钮。 如果你点击它,这些汽车的单元格应该添加到一个新的ViewController(使用TableView)。 但是我应该在CarDetailViewController的方法中添加什么?

- (IBAction)setFAV:(id)sender {
    // don't know what to write here    
}

提前感谢您的所有答案。

更新

所以这里有一张小图片,展示了它应该如何运作。 enter image description here

4 个答案:

答案 0 :(得分:0)

在这个方法中你需要一个包含所有选定汽车的数组,你需要将这个数组传递给newView控制器你用这个数组来显示最喜欢的汽车

答案 1 :(得分:0)

使您的汽车数组成为NSMutableArray或使用您喜爱的所有汽车创建新的NSMutableArray,如果用户单击该按钮,则向该阵列添加新对象。 然后,此数组应该是tableview的数据源,并在向NSMutableArray添加新对象后执行

[tableview reloadData];

答案 2 :(得分:0)

您的Car课程可能有BOOL isFavorite;,然后在第一个tableView的选择中,您可以在选定为{的索引处设置汽车的isFavorite属性{1}}。然后,在您最喜欢的表格视图中,一个选项是仅显示列表中包含YES的车辆。

答案 3 :(得分:0)

有很多方法可以做到这一点,而且由于您没有指定何时何地使用收藏夹表视图,因此可能适用于您的一种解决方案是使用NSUserDefaults。

当用户点击收藏夹按钮时(假设您已经创建并初始化了一个数组)

[favoritesArray addObject:Car1];

[[NSUserDefaults standardUserDefaults] setObject:favoritesArray forKey:@"favoriteCars"];

然后当您需要访问此数组以用作另一个视图控制器中的收藏夹TableView的数据源时:

NSMutableArray *array = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"favoriteCars"]];