私の機能の問題は、選択したデータを渡す方法がわからず、以前のView Controllerに戻ることです。リンクは段落全体へのリンクです。
質問する
1193 次
4 に答える
2
これにはデリゲートをお勧めしますが、そうしたくない場合は、NSNotification を使用すると、ここで時間を節約できます。
これは、おそらくviewDidLoadにあるadvanceVC.mに追加します
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(someThingSelectedInDetail:) name:@"someThingSelectedInDetail" object:nil];
- (void)someThingSelectedInDetail:(NSNotification*)notificationObject
{
NSString *chefName = notificationObject.object;
NSLog(@"Chef Name from notification: %@",chefName);
}
そして、advanceDetailVC.mのdidSelectでこれを行います。
UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
[[NSNotificationCenter defaultCenter ]postNotificationName:@"someThingSelectedInDetail" object: cell.textLabel.text];
ラベルのテキストを渡す代わりに、ここにインデックスパスがあるので、配列から直接取得して、このように通知に渡します
[[NSNotificationCenter defaultCenter ]postNotificationName:@"someThingSelectedInDetail" object: [detailArray objectAtIndex:indexPath.row]];
于 2013-10-16T05:37:49.253 に答える
0
iOS用にそれが欲しいと仮定すると、簡単な呼び出し:
[[[UIApplication sharedApplication] delegate] doSomething];
またはView Controllerが1つしかないため、一般的な方法(アプリの設定方法とは無関係):
UIViewController *vc = [[[UIApplication sharedApplication] keyWindow] rootViewController];
于 2013-10-16T05:09:21.860 に答える
-1
nsuserdefault を使用してデータを保存し、前のクラスに戻すことができます
于 2013-10-16T04:41:23.523 に答える