[解決済み] Swift で UIViewController のサブクラス用のカスタムイニシャライザを作るには?
2022-09-17 14:43:11
質問
これが以前に質問されたのであれば謝罪します。私は決定的な答えを見つけることができないようです。
私はサブクラス
UIViewController
をサブクラス化し、コードで簡単にセットアップできるようにするためにカスタムイニシャライザを持ちたいと思います。私はSwiftでこれを行うのに苦労しています。
私は
init()
関数で、特定の
NSURL
を渡すために使用することができます。私の頭の中では、次のように見えます。
init(withImageURL: NSURL)
. この関数を追加すると、次に
init(coder: NSCoder)
関数を追加するように要求されます。
これは、スーパークラスでマークされているためだと思います。
required
というキーワードでマークされているからではないでしょうか?だから、私はそれをサブクラスで行う必要がありますか?私はそれを追加します。
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
さて、どうでしょう?私の特別なイニシャライザーは
convenience
とみなされるのでしょうか?指定されたもの?スーパーイニシャライザーを呼び出すか?同じクラスのイニシャライザー?
特別なイニシャライザーを
UIViewController
サブクラスに追加するには?
どのように解決するのですか?
class ViewController: UIViewController {
var imageURL: NSURL?
// this is a convenient way to create this view controller without a imageURL
convenience init() {
self.init(imageURL: nil)
}
init(imageURL: NSURL?) {
self.imageURL = imageURL
super.init(nibName: nil, bundle: nil)
}
// if this view controller is loaded from a storyboard, imageURL will be nil
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
}
関連
-
Swiftがエラーを報告。アボートトラップ:6
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] 致命的なエラー:クラスの未実装イニシャライザー 'init(coder:)' を使用しています。
-
[解決済み] SwiftでUIViewのサブクラスのためのカスタムinitを書くには?
-
[解決済み] Protocol ... can only be used as generic constraint because it has Self or associated type requirements "とは、どういう意味ですか?
-
[解決済み] Swift 1.2では、宣言は「final」と「dynamic」の両方にはなり得ないというエラーがある
-
[解決済み] Swiftスクリプトでターミナルコマンドを実行するには?(例:xcodebuild)
-
[解決済み] Swift: PREPROCESSORフラグ(`#if DEBUG`など)を使ってAPIキーを実装する方法とは?
-
[解決済み] Swift: インデックスで文字列配列を置換する
-
[解決済み] Swift - 複数条件でオブジェクトの配列を並べ替える
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Swift の Optional 値 && Optional のアンラップ時に予期せず nil が検出された場合の説明
-
[解決済み] Swiftで1つのビューコントローラの向きを縦向きのみに固定する方法
-
[解決済み] swiftで改行なしの印刷をする
-
[解決済み] クラス 'ViewController' は swift で初期化されません。
-
[解決済み] UIViewの定高制約をプログラムで更新するには?
-
[解決済み] 既存のUIKitアプリケーションにSwiftUIビューを含める
-
[解決済み] ""内の二重引用符を印刷するには?
-
[解決済み] Swift: PREPROCESSORフラグ(`#if DEBUG`など)を使ってAPIキーを実装する方法とは?
-
[解決済み] Swift: インデックスで文字列配列を置換する
-
[解決済み] swiftにおける "precondition "と "assert "の違いとは?