如何最好地通过 3D Touch 打开所需的控制器?
How best to open the desired controller via 3D Touch?
我想问一下3D Touch的正确实现。例如有 UIViewController,它根据公开应用程序的数据加载彼此不同。如果像往常一样,它显示相同的数据,如果在 3D Touch 中,则显示其他数据。我做过通过NSUserDefaults
保存到一个变量,也就是如果正常启动是false,如果在3D Touch中是true。我用 NSNotificationCenter
做的更多。一切正常,但这不是该任务的正确实施。我该怎么做最好?
请尝试使用以下代码使用 3D 触摸打开详细视图。
IBOutlet UIButton *btnDetail;
#pragma mark - Previewing delegate
- (UIViewController *)previewingContext:(id <UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location
{
UIViewController *detailVC = [self.storyboard instantiateViewControllerWithIdentifier:@"detail"];
detailVC.preferredContentSize = CGSizeMake(0.0, 568.0);
previewingContext.sourceRect = self.btnDetail.frame;
return detailVC;
}
- (void)previewingContext:(id <UIViewControllerPreviewing>)previewingContext commitViewController:(UIViewController *)viewControllerToCommit{
[self showViewController:viewControllerToCommit sender:self];
}
我想问一下3D Touch的正确实现。例如有 UIViewController,它根据公开应用程序的数据加载彼此不同。如果像往常一样,它显示相同的数据,如果在 3D Touch 中,则显示其他数据。我做过通过NSUserDefaults
保存到一个变量,也就是如果正常启动是false,如果在3D Touch中是true。我用 NSNotificationCenter
做的更多。一切正常,但这不是该任务的正确实施。我该怎么做最好?
请尝试使用以下代码使用 3D 触摸打开详细视图。
IBOutlet UIButton *btnDetail;
#pragma mark - Previewing delegate
- (UIViewController *)previewingContext:(id <UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location
{
UIViewController *detailVC = [self.storyboard instantiateViewControllerWithIdentifier:@"detail"];
detailVC.preferredContentSize = CGSizeMake(0.0, 568.0);
previewingContext.sourceRect = self.btnDetail.frame;
return detailVC;
}
- (void)previewingContext:(id <UIViewControllerPreviewing>)previewingContext commitViewController:(UIViewController *)viewControllerToCommit{
[self showViewController:viewControllerToCommit sender:self];
}