我的功能问题是我不知道如何传递我选择的数据,然后回到上一个视图控制器。链接是整段,http://pastebin.com/AtMjLD66(抱歉,我没有10个声誉,对此造成的不便表示遗憾)欢呼。
答案 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保存数据,然后您可以在上一课中找回