2

我的函数的问题是我不确定如何将我选择的数据传递回之前的视图控制器。链接是整段,http ://pastebin.com/AtMjLD66 (对不起,我没有10个声望,给您带来的不便很抱歉)加油。

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.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 回答
2

您将使用委托模式将消息发送回视图控制器的委托(您可以将其设置为呈现视图控制器),传递您需要的有关选择的任何信息。

于 2013-10-16T04:50:41.493 回答
0

假设你想要它用于 iOS,一个简单的调用:

[[[UIApplication sharedApplication] delegate] doSomething];

或由于您只有一个视图控制器,因此通用方式(与您的应用程序的设置方式无关):

UIViewController *vc = [[[UIApplication sharedApplication] keyWindow] rootViewController];
于 2013-10-16T05:09:21.860 回答
-1

您可以使用 nsuserdefault 保存数据,然后您可以在上一课中检索回来

于 2013-10-16T04:41:23.523 回答