チェックアウト/バスケットシステムを実装する方法
-
25-09-2019 - |
質問
私は楽しみのためにアプリを作ってるんだし、アプリのチェックアウト/バスケットシステムを実装する方法を知っていただきたいと思います。
は基本的には、製品のリストは、その後のUITableViewコントローラに表示されているXMLファイルの形式で、Webサーバからに引っ張られます。細胞上のタップは、製品のより詳細な概要をユーザにかかります。
アプリはバスケット型のものに製品を入手できるようにする必要があるだろう、と私は立ち往生てるところです。
任意のコードサンプルは、私が見てみることができることはありますか?
解決
あなたがあなたのデータに適した形式を選択した場合は、
この作業は簡単です。 ObjCで最も自然のXML represantationはNSDictionaries / NSArraysツリーです。
-(UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath{
NSDictionary * item = [allItems objectAtIndex:indexPath.row];
NSString * cellTitle = [item objectForKey:@"ItemName"];
...
}
アイテムは、あなたのDetailViewControllerを開き、選択したアイテムへの参照を渡すcliked
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath
*)indexPath{
MyDetailViewController * myDetailViewController = [[MyDetailViewController alloc] init];
//MyDetailViewController should have a property of NSDictionary type, let it be "item"
myDetailViewController.item = [allItems objectAtIndex:indexPath.row];
//pass also ref to basket
myDetailViewController.basket = basket;
[self.myDetailViewController pushViewController:dvController animated:YES];
[myDetailViewController release];
}
詳細コントローラ内のすべてのアイテムのプロパティを表示します。
バスケットはNSMutableDictionariesのNSMutableDictionaryです。各backet項目のキーは、例えば、すべての項目「ItemNameの」の中でユニークないくつかの項目のプロパティです。各backet項目値は、元の配列内の項目への参照を含むべきです。 MyDetailViewControllerでは、あなたは次のようにバスケットに項目を追加することができます:
-(void)addToBasket{
NSDictionary * itemToAdd = [NSDictionary dictionaryWithObjectsAndKeys:
item, @"item", // this is reference to item from original array
[NSNumber numberWithInt:amount], @"amount", // or some other properties
nil];
[self.basket setObject:itemToAdd forKey:[item objectForKey:@"ItemName"]];
}
開いているときDetailViewControllerチェックバスケットであれば、すでに海流の項目が含まれています:
if ([self.basket objectForKey:[item objectForKey:@"ItemName"])
海流の項目がすでにバスケットに追加し、それを削除するオプションまたは変化量を提供することをもしそうであれば、番組ます。
所属していません StackOverflow