有很多方法可以解决这个问题,但最好的方法可能是实现一个自定义协议委托范例,该范例将在您的主视图中触发一段代码,然后在该视图中调用一个 segue。
这个问题中有一个关于导航堆栈的类似问题,但它也适用于并发控制器:
如何设置一个简单的委托来在两个视图控制器之间进行通信?
以下是 Apple 关于协议的基础知识:
https://developer.apple.com/library/ios/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/WorkingwithProtocols/WorkingwithProtocols.html
简而言之,您将在主视图中定义一个协议,其中一种方法根据详细视图中的选定单元格调用 segue,您可能也会通过该方法传递位置模型。
@protocol LocationDelegate
- (void)didSelectLocation:(MyLocation *)location;
@end
您的景点表将有一个委托属性指向您将在创建时设置的主视图。
@property (nonatomic, weak) id <LocationDelegate> *delegate;
当您在景点表中选择一个单元格时,您将调用委托方法来实现它的魔力。
[self.delegate didSelectLocation:location];