如何将选定的数据传递回上一个视图控制器

时间:2013-10-16 04:37:29

标签: ios objective-c uiviewcontroller

我的功能问题是我不知道如何传递我选择的数据,然后回到上一个视图控制器。链接是整段,http://pastebin.com/AtMjLD66(抱歉,我没有10个声誉,对此造成的不便表示遗憾)欢呼。

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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]]; 

答案 2 :(得分:0)

假设您想要iOS,只需一个简单的电话:

[[[UIApplication sharedApplication] delegate] doSomething];

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

UIViewController *vc = [[[UIApplication sharedApplication] keyWindow] rootViewController];

答案 3 :(得分:-1)

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