swift3はじめました|Objective-Cでいうself.viewは、どうやるの?

スポンサーリンク
Sample Code

あまのじゃくなHikaruapp(@hikaruapp)です。

swift3で遊んでいて困ったことが、swiftではself.view = selfみたいなことができず、調べ方が悪いのか見当たらず。それなら、自分なりに解決してしまえということで色々とやってみました。

self.viewとは

どんな時に使いたいかと言うと、Objective-Cの時では、viewクラスを必要とするalertview等のコードを他のクラスにまとめたい時に使うんですね。

誰に説明しているんだ(^^;

そんなわけで、どう解決したかと言うと以下の二つ

1.UIViewController
2.Extention

の二つでした。

swiftから入った人には簡単かもしれないけど、Objective-Cバリバリの人にはちょっと難しかったです。

1.UIViewController

では、コードです。

import UIKit

class AlertUIViewController {
    func alert( message: String, myview: UIViewController) {
        
        // アラートを作成
        let myAlert = UIAlertController(title: "UIViewController", message: message, preferredStyle: .alert)
        
        // アラートにボタンをつける
        myAlert.addAction(UIAlertAction(title: "OK", style: .default))
        
        // アラート表示
        myview.present(myAlert, animated: true, completion: nil)
        
    }
}

簡単でしょう。

2.Extension

めんどくさいのでExtensionしてしまえ!てやつです。

import UIKit

protocol AlertExtension {
    func alertExtention()
}

extension ViewController: AlertExtension {
    
    func alertExtention() {
        
        // アラートを作成
        let myAlert = UIAlertController(title: "Extension", message: mymessage, preferredStyle: .alert)
        
        // アラートにボタンをつける
        myAlert.addAction(UIAlertAction(title: "OK", style: .default))
        
        // アラート表示
        self.present(myAlert, animated: true, completion: nil)
    }
    
}

流用できませんが変数を参照することができるので、抱き合わせ商法みたいに使うといいかもしれません。
多用するとコードが見づらくなりますね

まとめ

やっとswiftに慣れてきた感じですが、他人が書いたコードを修正していて
ここまでがっつりと書き方の制限をしているのにリークするんだなと、コードの書き方の難しさを痛感しています。

日々修行です

GitHub

サンプルコード – github

コメント

タイトルとURLをコピーしました