2016-02-23 2 views
0

У меня есть два контроллера представлений, с которыми я сейчас работаю. В моей CathyTaskLogMessageViewController, у меня есть этот код:Добавить цель для UIButton Not Called

func defaultPictureButtonTapped(sender: UIButton) { 

    let imageViewerViewController = ImageViewerViewController() 
    imageViewerViewController.image = self.defaultPictureButton.imageView!.image 
    imageViewerViewController.cancelButtonImage = UIImage(named: "cancelButtonImage") 
    imageViewerViewController.centerPictureFromPoint(self.defaultPictureButton.frame.origin, ofSize: self.defaultPictureButton.frame.size, withCornerRadius: self.defaultPictureButton.layer.cornerRadius) 
    self.view.addSubview(imageViewerViewController.view) 

} 

И в моем ImageViewerViewController, у меня есть этот код:

var image: UIImage! 
    var imageView: UIImageView! 
    var scrollView: UIScrollView! 
    var disableSavingImage: Bool! 
    var pan: UIPanGestureRecognizer! 
    var cancelButton: UIButton! 
    var cancelButtonImage: UIImage! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     self.view.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.0) 
     setCancelButton() 

    } 

    func setCancelButton() { 

     self.cancelButton = UIButton(type: UIButtonType.RoundedRect) 
     self.cancelButton.addTarget(self, action: "cancelButtonTapped:", forControlEvents: UIControlEvents.TouchUpInside) 
     self.cancelButton.setImage(cancelButtonImage, forState: UIControlState.Normal) 
     self.cancelButton.tintColor = UIColor.whiteColor() 
     self.cancelButton.frame = CGRectMake(self.view.frame.size.width - (self.cancelButtonImage.size.width * 2) - 18, 18, self.cancelButtonImage.size.width * 2, self.cancelButtonImage.size.height * 2) 
     self.view.addSubview(self.cancelButton) 

    } 

    func cancelButtonTapped(sender: UIButton) { 

     print("cancelButtonTapped") 

    } 

    func centerPictureFromPoint(point: CGPoint, ofSize size: CGSize, withCornerRadius radius: CGFloat) { 

     UIView.animateWithDuration(0.3, animations: {() -> Void in 
      self.view.backgroundColor = UIColor(colorLiteralRed: 0.0, green: 0.0, blue: 0.0, alpha: 1.0) 

      }) { (finished: Bool) -> Void in 

     } 

    } 

Теперь, когда я нажимаю кнопку отмены, он должен печатать "cancelButtonTapped" в консоли. Однако консоль не выводит.

Я думаю, что проблема связана с тем, что кнопка находится в другом подзапросе, возможно? Я не совсем уверен. У кого-нибудь есть решение этой проблемы?

Также, когда кнопка отмены загружается, она загружается слева и перемещается вправо. Есть ли способ, которым кнопка просто появляется в правом верхнем углу?

Заранее благодарю вас за помощь.

+0

в состоянии увидеть, если кнопка Вы оживляет взаимодействие с пользователем? – Laffen

+0

Подключена ли ваша кнопка к розетке? –

+0

Да, кнопка оживляет. Нет, кнопка не подключена к розетке. Он просто создан программно. – aejhyun

ответ

0
  • изменить цвет фона, чтобы вы могли идентифицировать проблему.

  • поставить эту строку в viewDidLayoutSubviews() Этот метод так он загружает слева и движется вправо может решить

код:

override func viewDidLayoutSubviews() { 
    self.cancelButton.frame = CGRectMake(self.view.frame.size.width - (self.cancelButtonImage.size.width * 2) - 18, 18, self.cancelButtonImage.size.width * 2, self.cancelButtonImage.size.height * 2) 
} 
+0

Любая идея, почему моя функция cancelButtonTapped не работает? – aejhyun

+0

применяют различные фон для всех элементов управления, которые вы выбрали, поэтому вы можете найти различные подзаголовки. –