私は即時IOSに2つのViewControllers
(AとB)を持っています。 AとBの両方がインターネットからデータを読み込みます(別途)。読み込み中にactivityIndicator
と表示したい私はコードスウィフトを複製せずに多くのVCでアクティビティインジケータを使用
のViewController A
var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
func activityIndicatorBegin() {
activityIndicator = UIActivityIndicatorView(frame: CGRectMake(0,0,50,50))
activityIndicator.center = self.view.center
activityIndicator.hidesWhenStopped = true
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
view.addSubview(activityIndicator)
activityIndicator.startAnimating()
disableUserInteraction()
greyView = UIView()
greyView.frame = CGRectMake(0, 0, self.view.bounds.width, self.view.bounds.height)
greyView.backgroundColor = UIColor.blackColor()
greyView.alpha = 0.5
self.view.addSubview(greyView)
}
func activityIndicatorEnd() {
self.activityIndicator.stopAnimating()
enableUserInteraction()
self.greyView.removeFromSuperview()
}
とViewControllerをBの正確な同じことを行うには、次のように各VCに一度それを宣言することにより、それを悪い方法を行うと、あることactivityIndicatorBeginとactivityIndicatorEnd関数を呼び出すことができます知っていますBビューコントローラで宣言されています。しかし、私はコードをきれいにしたい。どのようにそれを行うことができますか?私は最近、コードクリーナーを作ろうとしています。
おかげで、
--UPDATE--
私は、次のコードのようなものが働くだろうimageingでしょう。しかし、私は拡張子の変数
var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
extension UIViewController {
func activityIndicatorBegin() {
activityIndicator = UIActivityIndicatorView(frame: CGRectMake(0,0,50,50))
activityIndicator.center = self.view.center
activityIndicator.hidesWhenStopped = true
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
view.addSubview(activityIndicator)
activityIndicator.startAnimating()
disableUserInteraction()
greyView = UIView()
greyView.frame = CGRectMake(0, 0, self.view.bounds.width, self.view.bounds.height)
greyView.backgroundColor = UIColor.blackColor()
greyView.alpha = 0.5
self.view.addSubview(greyView)
}
func activityIndicatorEnd() {
self.activityIndicator.stopAnimating()
enableUserInteraction()
self.greyView.removeFromSuperview()
}
}
ん私は物理的に作成する必要があります意味ストーリーボードの別の(3番目の)VCをBaseViewControllerに割り当てても何もしません。私は私の心にあるものをいくつか更新しました – user172902
@EdwardHung編集された答えをチェックしてください。 –
ありがとう、それは働いた。だから基本的に拡張を行うよりも:UIviewcontroller、私はクラスに変更し、別のクラスを継承してください。スマート – user172902