2016-12-24 7 views
0

カスタムビューコントローラがあり、カスタムビューコントローラのUIviewControllerTransitioningDelegateの関数を追加しようとしていますが、問題があります。ここにコードがあります。私は "オープンオーバーライドfunc animationController(forPresented"と "open override func animationController(forDismissed)"でダイニングモジュールエラーの外側にある "オーバーライド非オープンインスタンスメソッド"を取得しています。カスタムビューコントローラの非オープンインスタンススウィフトのオーバーライド

Error Image

import UIKit 
import ColorMatchTabs 

class MainPageViewController: ColorMatchTabsViewController { 

    @IBOutlet weak var ShoppingCart: TKTransitionSubmitButton! 
    @IBOutlet weak var Settings: TKTransitionSubmitButton! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     titleLabel.font = UIFont.navigationTitleFont() 
     // to hide bottom button remove the following line 
     popoverViewController = MainPopOverViewController() 
     popoverViewController?.delegate = self 

     dataSource = self 
     reloadData() 
    } 

    @IBAction func SettingsButton(_ button: TKTransitionSubmitButton) { 
     button.animate(0, completion: {() ->() in 
      let secondVC = SettingsViewController() 
      secondVC.transitioningDelegate = self 
      self.present(secondVC, animated: true, completion: nil) 
     }) 
    } 

    @IBAction func ShoppingCartButton(_ button: TKTransitionSubmitButton) { 
     button.animate(0, completion: {() ->() in 

     }) 
    } 

    open override func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? { 
     return TKFadeInAnimator(transitionDuration: 0.5, startingAlpha: 0.8) 
    } 

    open override func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? { 
     return nil 
    } 

} 

extension MainPageViewController: ColorMatchTabsViewControllerDataSource { 

    func numberOfItems(inController controller: ColorMatchTabsViewController) -> Int { 
     return TabItemsProvider.items.count 
    } 

    func tabsViewController(_ controller: ColorMatchTabsViewController, viewControllerAt index: Int) -> UIViewController { 
     return StubContentViewControllersProvider.viewControllers[index] 
    } 

    func tabsViewController(_ controller: ColorMatchTabsViewController, titleAt index: Int) -> String { 
     return TabItemsProvider.items[index].title 
    } 

    func tabsViewController(_ controller: ColorMatchTabsViewController, iconAt index: Int) -> UIImage { 
     return TabItemsProvider.items[index].normalImage 
    } 

    func tabsViewController(_ controller: ColorMatchTabsViewController, hightlightedIconAt index: Int) -> UIImage { 
     return TabItemsProvider.items[index].highlightedImage 
    } 

    func tabsViewController(_ controller: ColorMatchTabsViewController, tintColorAt index: Int) -> UIColor { 
     return TabItemsProvider.items[index].tintColor 
    } 

} 

extension MainPageViewController: PopoverViewControllerDelegate { 

    func popoverViewController(_ popoverViewController: PopoverViewController, didSelectItemAt index: Int) { 
     selectItem(at: index) 
    } 
} 

答えて

1

openColorMatchTabsViewControllerメソッドを定義する。 オープンクラスが使用可能とサブクラス化の両方であろう。同様に、公共のメンバーのみ他のモジュールによって使用可能な、しかしオーバーライドしないであろう。オープン部材が使用可能とオーバーライドの両方であろう。

animationControlleranimationControllerをColorMatchTabsViewController拡張で定義してください。デフォルトはパブリックと定義されています。

+0

どうすればいいですか? – user7222919

+1

どこに行けばいいですか?それは拡張です – user7222919

+0

私はmainviewcontrollerを定義する必要があります。どのように定義されるだろう – user7222919

関連する問題