我的應用程序在覈心數據對象中存儲了不同的屬性。它們都顯示在UITableView中,如果您單擊一個單元格,則會顯示一個DetailView。像Master-Detail-XCode-Template一樣。3D Touch從UITableViewCell觸摸Peek和Pop如何將數據交給其他UIViewController?
現在我想用peek和pop來實現3D Touch。就像在郵件應用程序中一樣,3D觸摸一個單元格,獲得預覽,按下更深,彈出細節。
我得到了這個到目前爲止的工作,但我可以T弄清楚如何在
- (nullable UIViewController *)previewingContext:(id <UIViewControllerPreviewing>)previewingContext viewControllerForLocation:(CGPoint)location
和
- (void)previewingContext:(id <UIViewControllerPreviewing>)previewingContext commitViewController:(UIViewController *)viewControllerToCommit
通過相應的數據到其他DetailViewController。
如果您只需單擊單元格(沒有3D觸摸)我交出的數據
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
NSManagedObject *object = [[self fetchedResultsController] objectAtIndexPath:indexPath];
[[segue destinationViewController] setDetailItem:object];
我使用的是
id detailItem
在每個視圖控制器
,我相應的對象設置爲它。
因此,我嘗試獲得類似於工作的東西,因此在我的DetailViewController中,我的「detailItem」需要選定(3D觸摸)單元格中相應的Core Data對象。
感謝您的幫助!
謝謝,我真的很接近,但亂七八糟的東西了...;) – Kreuzberg
@Dheeraj迪爾先生,你沒有提到你把這段代碼蘋果。 https://developer.apple.com/library/content/samplecode/ViewControllerPreviews/Listings/Projects_PreviewUsingDelegate_PreviewUsingDelegate_MasterViewController_UIViewControllerPreviewing_swift.html#//apple_ref/doc/uid/TP40016546-Projects_PreviewUsingDelegate_PreviewUsingDelegate_MasterViewController_UIViewControllerPreviewing_swift-DontLinkElementID_6 –