質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

3196閲覧

swift uiviewクラスを継承させたクラスを他のクラスに継承させてそのクラスをstoryboardに紐づけたい

L85A2

総合スコア60

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/07/05 04:18

編集2018/07/05 04:31

題名の長文失礼しました。

swift

1import UIKit 2class mainViewController:UIViewController{ 3//メソッドなど省略 4}

このクラスはmainView.storyboard(大枠は、View Controllerクラスを使ってます。)の
custom classとして紐づけました。

次にこのクラスを継承させたクラスを作成します。

swift

1import UIKit 2class subViewController:mainViewController{ 3//メソッドなど省略 4}

このクラスは事実上UIViewControllerを継承しているので、
subView.storyboard(これも大枠はview Controllerです)に
custom classとして紐づける事ができるのではないかと思いましたが
選択できませんでした。

UIViewControllerクラスを継承させたクラスを他のクラスに継承させてそのクラスをstoryboardに紐づける
ことはできないのでしょうか?

PS custom classとの紐づけは、すべてxcodeの show the assistant editorを使用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2018/07/05 04:23

Controller の綴りが Cotroller になっていますが、Custom Classの設定は Cotroller になっているでしょうか?あと、質問とは直接関係はありませんが、UIViewとUIViewControllerは別物です。UIViewControllerのことを省略してUIViewと呼んだり書いたりすることは紛らわしいのでやめた方がいいです。
L85A2

2018/07/05 04:34 編集

Cotrollerはタイプミスです。 修正しました。 指摘通り、UIViewとUIViewControllerは、別のですね、紛らわしく記述してしました。ごめんなさい。
fuzzball

2018/07/05 05:14

Custom Class の入力のところで、プルダウンのリストに表示されないということでしょうか?入力しようとしているCustom Classは、ViewControllerのCustom Classでしょうか?Viewが選択されていないでしょうか?
L85A2

2018/07/05 05:33

プルダウンのリストに表示されないということです。
fuzzball

2018/07/05 05:39 編集

後半の質問に関しては大丈夫でしょうか?ちなみに、普通であればカスタムクラスとして設定できます。(新規プロジェクトで試してみて下さい)何か間違い/勘違いがあると思われますので、一つ一つ確認してみて下さい。
L85A2

2018/07/05 05:41 編集

すみません。【ViewControllerのCustom Class】 の意味合いがよくわからなくて長考してます。
fuzzball

2018/07/05 05:48 編集

Storyboardの左側のツリー(Document Outline)でViewControllerを選択しているか?ということです。(Custom ClassのClassのところに、薄っすらとUIViewControllerと表示されていればOKです)
L85A2

2018/07/05 05:52

おっしゃるとおり新規プロジェクトでは、プルダウンのリストに表示を確認することができました。 元のコードに何かおかしな設定をしているかもしれません。 回答ありがとうございます。
guest

回答1

0

やり方として、一つ抽象化したクラスを用意しておく方法があるかなと思いました。
こちらの方法であれば、StoryboardとViewControllerのクラスが1対1になるので、大丈夫かなと思いますが、いかがでしょうか。

swift:

1import UIKit 2class AbstractViewController:UIViewController{ 3 // 共通のメソッド名だけど別で実装したい場合 4 func doSomething() -> Void 5 6 func doCommon() { 7 // 共通の振る舞いを実装しておく 8 } 9} 10 11class MainViewController: AbstractViewController { 12 func doSomething() { 13 // 実装する 14 doCommon() // 共通のメソッドを呼ぶこともできます。 15 } 16} 17 18class SubViewController: AbstractViewController { 19 func doSomething() { 20 // 実装する 21 } 22}

投稿2018/07/05 04:53

編集2018/07/05 04:58
sussan0416

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問