2015-12-17 8 views
0
import UIKit 

@objc protocol SideBarDelegate{ 

     func sideBarDidSelectButtonAtIndex(Index:Int) 

     optional func sideBarWillClose() 
     optional func sideBarWillOpen() 
} 


class SideBar: NSObject,SideBarTableViewControllerDelegate { 

     let barWidth:CGFloat = 150 
     let sideBarTableViewTopInset:CGFloat = 64 
     let sideBarContainerView:UIView = UIView() 
     let sideBarTableViewController:SideBarTableViewController = SideBarTableViewController() 
     var originView:UIView? 

     var animator:UIDynamicAnimator 
     var delegate:SideBarDelegate 
     var isSideBarOpen:Bool = false 

    override init() { 

     super.init() //ERROR ON THIS LINE 
    } 

    init(sourceView:UIView, menuItems:Array<String>) { 


      super.init()  //ERROR ON THIS LINE 
      originView = sourceView 
      sideBarTableViewController.tableData = menuItems 
      animator = UIDynamicAnimator(referenceView: originView!) 

      setupSideBar() 



      let showGestureRecognizer:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "handleSwipe:") 
     showGestureRecognizer.direction = UISwipeGestureRecognizerDirection.Right 
     originView!.addGestureRecognizer(showGestureRecognizer) 

      let hideGestureRecognizer:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "handleSwipe:") 
     hideGestureRecognizer.direction = UISwipeGestureRecognizerDirection.Left 
     originView!.addGestureRecognizer(hideGestureRecognizer) 
    } 
} 

Я выполнил больше методов ниже, но ОШИБКИ В ЭТИХ ЛИНИЯХ КОДАсвойства «self.animator» не инициализируется при super.init вызове

+0

Возможно, это явная ошибка (ИОС не мой домен), но, как правило, еще несколько объяснений часто облегчает людям, чтобы помочь вам. –

+0

[https://www.youtube.com/watch?v=qaLiZgUK2T0] ---- Это ссылка на youtube, через которую я пытаюсь очистить размытое меню. Я новичок в программировании на iOS, пожалуйста, помогите!. Спасибо In Advance –

+1

1. Измените свой вопрос, чтобы исправить форматирование кода. 2. Включите объяснение в вопрос, а не просто добавьте ссылку на комментарии. –

ответ

0

Может быть, это не нужно переопределить Init(). Или вы объявляете init(sourceView:UIView, menuItems:Array<String>) как удобство, как показано ниже:

convenience init(sourceView:UIView, menuItems:Array<String>) { 
      super.init() 
      self.init() // don't forget calling self.init 
      originView = sourceView 
      sideBarTableViewController.tableData = menuItems 
      animator = UIDynamicAnimator(referenceView: originView!) 
      setupSideBar() 

 Смежные вопросы

  • Нет связанных вопросов^_^