2015-07-29 2 views
1

У меня есть два класса, и один из них я создаю кнопку, которую я хочу вызвать в этом классе.Как добавить метод класса в addtarget UIButton?

class blueFooterForImages: UIView{ 
    //buttons for footer 
     let slideButton = UIButton() 
     let buttonOnFooter = UIButton() 

    override init(frame: CGRect) { 
     super.init(frame: frame) 

     //setting buttons 
     slideButton.frame = CGRectMake((self.frame.width/2) - 10 , 10, 30, 30) 
     slideButton.addTarget(self, action: "animationFunction:", forControlEvents: UIControlEvents.TouchUpInside) 

     slideButton.setImage(imageForSlideButton,forState: .Normal) 
     self.addSubview(slideButton)} 
} 

internal func animationFunction(sender: UIButton!) { 
     UIView.animateWithDuration(0.5, animations: {() -> Void in 
      self.frame.size.width -= 100 
     }) 
    } 

ответ

3

добавить это в ваш код, использование одноточечного и отправить экземпляр

static var sharedInstance : blueFooterForImages? 

override init(frame: CGRect) { 
    super.init(frame: frame) 
    blueFooterForImages.sharedInstance = self 
    //rest of init code.... 
} 

в другом классе:

var button = UIButton(initParams...); 
button.addTarget(blueFooterForImages.sharedInstance!,action:"animationFunction:", forControlEvents: UIControlEvents.TouchUpInside); 

просто убедитесь, что blueFooterForImages.sharedInstance не ноль

(убедитесь, что экземпляр blueFooterForImages был создан, прежде чем вы это сделаете)

+0

хм это не работает, кнопка не реагирует вообще. – Zept

+0

Я добавляю статический var в bluefooter, а затем создаю объект в другом классе, и он также создает кнопку с addtarget, как вы сказали. – Zept

+1

Все работает, я выяснил, в чем проблема! Благодаря! – Zept

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