2

私の機能の問題は、選択したデータを渡す方法がわからず、以前のView Controllerに戻ることです。リンクは段落全体へのリンクです。

4

4 に答える 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.mdidSelectでこれを行います。

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 に答える