通过点击一个button添加一个tableViewCell到一个新的TableView
我想,如果用户点击一个button,这些tableCell应该被添加到一个新的tableView(你可以看到你的collections夹)。
我有一个类的Car
, Car
的内容是合成的:
#import "Car.h" @implementation Car @synthesize name; @synthesize speed; @synthesize selected; @end
CarsViewController
包含一个tableView,你可以find每辆车:
@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
有最喜欢的button。 如果你点击它,这些车的单元应该被添加到一个新的ViewController(带有TableView)。 但是,我应该添加到CarDetailViewController
的方法?
- (IBAction)setFAV:(id)sender { // don't know what to write here }
在此先感谢您的答案。
UPDATE
所以这里有一张图片显示了它应该如何工作。
在这个方法中,你需要一个数组来保存所有select的汽车,并且你需要把这个数组传递给newView控制器。
使你的汽车数组成为一个NSMutableArray或创build一个新的NSMutableArray所有你最喜欢的汽车,如果用户点击button,添加一个新的对象到该数组。 然后,这个数组应该是你的tableview的数据源,并添加一个新的对象到NSMutableArray做
[tableview reloadData];
你的Car
类可以有一个BOOL isFavorite;
然后在第一个tableView
select,您可以在select的索引为YES
将汽车的isFavorite
属性设置为YES
。 然后,在您最喜欢的表格视图中,一个选项是只显示列表中拥有isFavorite = YES
。
有很多方法可以做到这一点,既然您没有指定何时何地使用collections夹表视图,一个可能适用于您的解决scheme是使用NSUserDefaults。
当用户点击collectionsbutton(假设你已经创build并初始化一个数组)
[favoritesArray addObject:Car1]; [[NSUserDefaults standardUserDefaults] setObject:favoritesArray forKey:@"favoriteCars"];
然后当你需要访问这个数组作为另一个视图控制器中的collections夹TableView的数据源时:
NSMutableArray *array = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"favoriteCars"]];