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

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

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

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

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

Xcode

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

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

1回答

3109閲覧

swiftでの画面遷移について教えて下さい

yoppy0066

総合スコア293

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

iOS

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

Xcode

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

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2015/03/30 10:45

まず、以下のようなファイルがあるのですが

※ViewController.swift
@IBAction func showDetail(sender: AnyObject) {
var storyboard: UIStoryboard = UIStoryboard(name: "Detail", bundle: nil)
var detailViewController: UIViewController = storyboard.instantiateInitialViewController() as UIViewController
self.navigationController?.pushViewController(detailViewController, animated: true)
}

※DetailViewController.swift
@IBAction func showSetting(sender: AnyObject) {
var storyboard: UIStoryboard = UIStoryboard(name: "Setting", bundle: nil)
var settingViewController: UIViewController = storyboard.instantiateInitialViewController() as UIViewController
//settingViewController.modalTransitionStyle = UIModalTransitionStyle.CrossDissolve
self.presentViewController(settingViewController, animated: true, completion: nil)
}

@IBAction func showDetail(sender: AnyObject) {
var storyboard: UIStoryboard = UIStoryboard(name: "Detail", bundle: nil)
var detaildetailViewController: UIViewController = storyboard.instantiateViewControllerWithIdentifier("Detaildetail") as UIViewController

self.navigationController?.pushViewController(detaildetailViewController, animated: true)

}

showDetailをクリックすると、遷移はするのですが一瞬表示されてすぐに別の画面が表示されてしまいます。warningで以下のメッセージがでるのですが関係あるのでしょうか?

Presenting view controllers on detached view controllers is discouraged

どう質問してよいかわからず文章がお粗末で申し訳ありませんが、ご回答頂けますと幸いです

以上よろしくお願いします

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

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

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

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

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

chonbo2525

2015/03/31 01:34

初めまして。 一応画面は遷移できているようですね。 DetailViewControllerのviewDidLoad等のメソッドはどのようになっていますでしょうか? 何もせずに別のViewControllerが表示されるようですので、DetailViewControllerへ遷移後の処理は どのようになっていますか?
guest

回答1

0

ベストアンサー

ソースを見る限り、おかしなところはありませんが
Xcodeにおいては人間が見て正しいコードでも、ビルドしてwarningが出ればそれは間違ったコードです。
まずは、warningを何とかするのが先決です。
当たりをつけるなら、Controllerのメンバ指定にvarを使う必要はないかと思います。
また、クロージャ内でメンバを複数使用していないので、わざわざメンバにする必要も無いかと
思われます。コードが汚くなるのは好みだと思います。
Obj-Cならプリプロセッサをつかって綺麗に纏まりますが、swiftはその当り不便ですね。

var detaildetailViewController: ~の部分を let detaildetailViewController: に変更して
ビルドしてみてください。何らかのエラーが出るはずです。

投稿2015/04/02 12:54

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

yoppy0066

2015/04/10 03:00

すみません、初心者のためいろいろ勘違いがありました、、、ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問