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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

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

Q&A

0回答

1377閲覧

UIViewで定義したアラートを表示したい

wint

総合スコア13

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

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

0グッド

0クリップ

投稿2017/10/22 12:33

普段はUIViewControllerからレイアウトを定義しているのですが、
訳あって同じViewContorollerから別の複数の種類のviewを表示できるよう、
xibファイルとそのUIViewファイルを作成し、UIViewファイルのコードでUIのレイアウトを定義し、

swift

1//Viewはレイアウトを定義したUIViewのファイル 2let xibView = View(frame: CGRect(x: 0, y: 0, width: displayWidth, height: displayHeight)) 3view.addSubview(xibView)

で表示できるようにしたいと考えています。
しかし、UIViewだとできなくなることがあり、困っています。

  • アラートが表示できない

swift

1let alert = UIAlertController(title: "hoge", message: "hoge", preferredStyle: .alert) 2present(alert, animated: true, completion: nil)

としてアラートを表示しようとするとpresentのところで
Value of type 'View' has no member 'present'
と怒られる。

  • 画面遷移はどうすればいい?

view.addSubview(xibView)を使っている場合画面遷移はどのように行えばいいでしょうか?
単に別のviewで上書きするのはダメな気がしているのですが。。。

以上UIViewControllerとUIViewの使い方の違い・注意点を教えていただきたく思っております。

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

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

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

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

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

t_obara

2017/10/23 09:31

使い方がいまいちわかりませんが、viewは表示系を処理し、エラーが発生するなどの制御系はUIViewControllerに任せれば良いのでは?
wint

2017/10/23 14:22 編集

そのようにするとしたら、例えばUIViewの中でtableViewを定義した時、そのタッチイベントをUIViewControllerの中で処理したいのですが、この場合どのように実装すればよろしいでしょうか?
t_obara

2017/10/24 01:18

やり方はいくつかあるかと思われますが、例えばView側でDelegateオブジェクトを持たせ、イベントが発生したら、そのオブジェクトの特定メソッドを呼び出すようにする。処理したいControllerでDelegateインターフェースを実装するとか
wint

2017/10/24 11:53

そのようなやり方があるのですね!勉強になりました。調べてみます。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問