2017-03-15 3 views
0

UIButtonのサブクラスがストーリーボードでセグをトリガーすることは可能ですか? ストーリーボードのボタンのカスタムクラスを変更すると、segueの動作が停止します。UIButtonトリガーのサブクラスをセグエ?

私はUIPageViewControllerをNavController内のViewControllerに埋め込みました。 PageControllerのViewControllerの1つに、NavigationControllerでsegueを実行するサブクラス化されたButtonがあります。他 すべてのものは、ストーリーボードにアップ配線されている(だけあなたのサブクラスにスーパー呼び出す

class MiniButton:UIButton{ 

var originalBackgroundColor:UIColor? 
var originalTextColor:UIColor? 

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    originalBackgroundColor = self.backgroundColor 
    originalTextColor = self.titleColor(for: .normal) 
    self.backgroundColor = MiniColor.miniYellow 
    self.setTitleColor(MiniColor.white, for: .normal) 
} 

func backToOriginalColors(){ 
    self.backgroundColor = originalBackgroundColor 
    self.setTitleColor(originalTextColor, for: .normal) 
} 

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) { 
    backToOriginalColors() 
} 

override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) { 
    backToOriginalColors() 
} 

}

+0

もう少し詳細なコードと詳細を投稿してもらえますか? – mihatel

+1

もちろん可能です。issu eはあなたのコードです。それを示してください。 – dfd

+0

不完全な質問を申し訳ありません。私はそれを編集した。作品の大半はストーリーボードのみです。 –

答えて

0

=スーパー 『重要な方法は』

次のように

ボタンのサブクラスであります

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    super.touchesBegan(touches, with: event) // <-------- 

    originalBackgroundColor = self.backgroundColor 
    originalTextColor = self.titleColor(for: .normal) 
    self.backgroundColor = MiniColor.miniYellow 
    self.setTitleColor(MiniColor.white, for: .normal) 
} 
関連する問題