拆分视图控制器:从影响主视图的详细视图中启动segue

时间:2013-10-22 11:24:54

标签: iphone objective-c xcode uisplitviewcontroller segue

好的所以我对XCode和IOS很新,但基本上我的意思是:

我有一个分割视图控制器,在我的应用程序中用于显示左侧(在主视图控制器中)吸引力或活动的少量基本信息,并向用户显示选项/评论/或其他详细视图控制器中的选择。

现在我要做的是: - 当用户从详细视图中动态生成的景点表中选择一个景点时,我希望它不仅触发一个segue,在细节视图中显示更多关于该景点的信息,还会触发主视图中的segue变为a短暂的吸引力。

有谁知道我会怎么做?我正在使用Xcode 5

感谢您的帮助

截图可以在这里找到:

1 个答案:

答案 0 :(得分:0)

有很多方法可以解决这个问题,但最好的方法是实现一个自定义协议委托范例,该范例将在主视图中触发一段代码,然后在该视图中调用segue。

在这个关于导航堆栈的问题中存在类似的问题,但它也适用于并发控制器:

How do I set up a simple delegate to communicate between two view controllers?

以下是Apple关于协议的基础知识:

https://developer.apple.com/library/ios/documentation/cocoa/conceptual/ProgrammingWithObjectiveC/WorkingwithProtocols/WorkingwithProtocols.html

简而言之,您将在主视图中定义一个协议,其中一个方法根据详细视图中的选定单元格调用segue,您也可以通过该方法传递位置模型。 / p>

@protocol LocationDelegate

- (void)didSelectLocation:(MyLocation *)location;

@end

您的景点表会有一个委托属性,指向您在创建时设置的主视图。

@property (nonatomic, weak) id <LocationDelegate> *delegate;

当您在景点表中选择一个单元格时,您可以调用委托方法来实现它的魔力。

[self.delegate didSelectLocation:location];