【发布时间】:2016-10-13 09:22:33
【问题描述】:
我正在尝试使用 Spotlight 结果将用户引导到我的应用中的相应部分。
MainView 有几个按钮允许转到应用程序的不同区域,其中一个是电话目录,它位于它自己的SplitViewController 中。 MasterView 在TableView 中包含用户列表,DetailView 包含项目详细信息。
目前,我的AppDelegate.m 中有以下内容。
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {
if ([userActivity.activityType isEqualToString:CSSearchableItemActionType]) {
// uid = an Id field unique for each record
NSString *uid = userActivity.userInfo[CSSearchableItemActivityIdentifier];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UINavigationController *navController = nil;
navController = [storyboard instantiateViewControllerWithIdentifier:@"PhoneDirectory"];
if (navController != nil) {
[[[self window] rootViewController] presentViewController:navController animated:YES completion:nil];
}
}
return YES;
}
这是我的结构,希望它能很好地说明它。
Navigation Controller
|
|-- Main View
|-- About View
|
|-- SplitView Controller (StoryboardID: PhoneDirectory)
|-- Master View Controller
|-- Detail View Controller
|--Another View
我想要的是向DetailView 提供用户的信息。在显示MasterView 和DetailView 的设备上,我希望MasterView 看起来好像该行已被点击。
我能做到这一点的最佳方法是什么?如何将 uid 传递给 MasterView,然后模拟点击以模拟对相应行的触摸。
注意:我在MasterView 的数据设置为Dictionary 的Arrays,以防通过uid 找到合适的用户很重要>.
如果您需要更多信息,请告诉我。
【问题讨论】:
标签: ios objective-c iphone segue spotlight