在标签栏控制器中的选项卡之间传递数据

时间:2014-12-21 20:41:14

标签: ios swift delegates uitabbarcontroller uistoryboardsegue

尝试在UITab控制器中的选项卡之间传递数据。 我尝试过使用代理并且无法使其工作,并且还尝试实例化类的对象以将数据传递给它,并且也无法使其工作。

我的设置是这样的...... enter image description here

我试图将数据从测试表发送到收藏夹表,如箭头所示...... 因为我正在尝试为用户实现他喜欢的收藏表格单元格的收藏夹表格视图控制器。

1 个答案:

答案 0 :(得分:0)

我推荐Core Data,但如果您发现项目太难,可以使用Plist文件作为收藏夹。

请注意,这是一个简单的例子:

-(void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{
    if ([favorites containsObject:items[indexPath.row]]) {
        [favorites removeObjectAtIndex:[favorites indexOfObject:items[indexPath.row]]];
    }
    else {
        [favorites addObject:items[indexPath.row]];
    }
    [self saveItems];
    [self.tableView reloadData];
}


- (void)loadItems {
    NSString *filePath = [self pathForItems];

    if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
        favorites = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
    } else {
        favorites = [NSMutableArray array];
    }
}

- (void)saveItems {

    NSString *filePath = [self pathForItems];
    [NSKeyedArchiver archiveRootObject:favorites toFile:filePath];
}

- (NSString *)pathForItems {

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documents = [paths lastObject];

    return [documents stringByAppendingPathComponent:@"favorites.plist"];
}