2016-09-07 4 views
0

В настоящее время я пытаюсь реализовать 3D-сенсор в своем собственном приложении. Приложение - это что-то вроде школьного планировщика, так что главный диспетчер представлений - это UITableViewController, есть некоторые уроки в представлении таблицы, и при нажатии на один из них появится segue и изменит активный контроллер представления на «Детальный контроль» '.swift. Все работает до сих пор. Но теперь я пытаюсь реализовать 3D-Touch, чтобы пользователь мог нажимать на «урок», чтобы получить предварительный просмотр конкретного урока. Моя первая попытка состояла в том, чтобы просто установить галочку в segue раскадровки. Он фактически показал предварительный просмотр, но я хочу добавить некоторые действия под предварительным просмотром и дать ему название. Поэтому я попытался реализовать протокол UIViewControllerPreviewingDelegate и создать свои пользовательские функции.Быстро как правильно переопределить функции 3D-Touch?

Но с этого момента я понятия не имею, как продолжить.

Мои функции:

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navigationItem.leftBarButtonItem = self.editButtonItem() 
    // .... Some other irrelevant stuff 
    registerForPreviewingWithDelegate(self, sourceView: view) 
} 

func previewingContext(previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { 
    if let indexPath = tableView.indexPathForRowAtPoint(location) { 
     //This will show the cell clearly and blur the rest of the screen for our peek. 
     previewingContext.sourceRect = tableView.rectForRowAtIndexPath(indexPath) 
    } 
    return nil 
} 

func previewingContext(previewingContext: UIViewControllerPreviewing, commitViewController viewControllerToCommit: UIViewController) { 
    presentViewController(viewControllerToCommit, animated: true, completion: nil) 
} 

override func previewActionItems() -> [UIPreviewActionItem] { 
    print("previewActionItems") 
    let action = UIPreviewAction(title: "Press Me!", style: .Default) { (action, viewController) in 
     print("I believe I can fly") 
    } 
    return [UIPreviewAction](arrayLiteral: action) 
} 

И мои занятия:

Начальный контроллер мнение MainTableViewController. Все функции, показанные выше, записываются в этом классе.

Более подробный контроллер просмотра - это подробный контрольный контролер.

Благодарим за ответ!

+2

это хорошая идея, чтобы наблюдать за сеанс WWDC (ы) на тему – Wain

+0

Да я знаю ... Но я просто хочу, чтобы получить ответ на свой вопрос прямо сейчас XD – dv02

+0

Вы можете посмотреть на это [tutorial] (http://code.tutsplus.com/tutorials/ios-9-an-introduction-to-3d-touch--cms-25115). Там вы можете найти как программное, так и раскадровку на свой вопрос. – Ayazmon

ответ

0
override var previewActionItems: [UIPreviewActionItem] { 

    let action1 = UIPreviewActionGroup(title: NSLocalizedString("action1", comment: "action1"), style: .default, actions: someAction) 

    let action2 = UIPreviewAction(title: "action2", style: .default) {[unowned self] (action, viewController) in 
     print("action2") 
    } 

    return [action1, action2] 
} 
Смежные вопросы