iOSスクリーンレットのクラスを作成する

iOSスクリーンレットのクラスを作成する

ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。

Screenletクラスは、Screenletの中心的なハブです。 Screenletのプロパティ、ScreenletのViewクラスへの参照、Interactor操作を呼び出すためのメソッドなどが含まれています。 Screenletを使用する場合、アプリ開発者は主にScreenletクラスと対話します。 つまり、Screenletが自己認識になると、そのScreenletクラスで発生します(これは発生しないと合理的に確信していますが)。

Screensの BaseScreenlet クラス は、ベースScreenletクラスの実装です。 BaseScreenlet はScreenletクラスに必要な機能のほとんどを提供するため、Screenletクラスは BaseScreenletを拡張する必要があります。 これにより、スクリーンレットの独自の機能に集中できます。 Screenletクラスには、Screenletに必要な @IBInspectable プロパティとScreenletのViewクラスへの参照も含める必要があります。 Screenletのアクションを実行するには、Screenletクラスが BaseScreenletcreateInteractor メソッドをオーバーライドする必要があります。 このメソッドは、Interactorのインスタンスを作成し、Interactorの onSuccess および onFailure クロージャーを設定して、サーバー呼び出しが成功または失敗した場合の動作をそれぞれ定義する必要があります。

たとえば、 AddBookmarkScreenlet クラス は、Add Bookmark ScreenletのScreenletクラスです。 このクラスは BaseScreenlet を拡張し、ブックマークフォルダーのID(folderId)の @IBInspectable 変数を含みます。 AddBookmarkScreenlet クラスの createInteractor メソッドは、最初にViewクラスへの参照を取得します(AddBookmarkView_default)。 次に、このScreenletクラス(self)、 folderId、ブックマークのタイトル、およびブックマークのURLで AddBookmarkInteractor インスタンスを作成します。 Viewクラス参照には、ユーザーがUIに入力したブックマークタイトルとURLが含まれていることに注意してください。 createInteractor メソッドは、サーバー呼び出しが成功したときに成功メッセージを出力するようにInteractorの onSuccess クロージャーを設定します。 同様に、サーバー呼び出しが失敗したときにエラーメッセージを出力するように、Interactorの onFailure クロージャーが設定されます。 ここでメッセージを印刷するだけに制限されていないことに注意してください。これらのクロージャを設定して、スクリーンレットに最適なものを実行する必要があります。 Interactorインスタンスを返すことにより、 createInteractor メソッドが終了します。 完全な AddBookmarkScreenlet クラスは次のとおりです。

import UIKit
import LiferayScreens


public class AddBookmarkScreenlet: BaseScreenlet {

    //MARK: Inspectables

    @IBInspectable var folderId: Int64 = 0

    //MARK: BaseScreenlet

    override public func createInteractor(name name: String?, sender: AnyObject?) -> Interactor? {

        let view = self.screenletView as! AddBookmarkView_default

        let interactor = AddBookmarkInteractor(screenlet: self,
                                           folderId: folderId,
                                           title: view.title!,
                                           url: view.URL!)

        //Called when the Interactor's server call finishes succesfully
        interactor.onSuccess = {
            let bookmarkName = interactor.resultBookmarkInfo!["name"] as! String
            print("Bookmark \"\(bookmarkName)\" saved!")
        }

        //Called when the Interactor's server call fails
        interactor.onFailure = { _ in
            print("An error occurred saving the bookmark")
        }

        return interactor
    }

}

参考までに、GitHubのサンプルAdd Bookmark Screenletの最終コードは です。

« iOSスクリーンレットのインタラクターを作成するiOSリストスクリーンレットの作成 »
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています