🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
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++と共存することが意図されています

Q&A

解決済

1回答

1817閲覧

swift navigationbarをコードから追加したいが出ない

ryu0118

総合スコア0

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++と共存することが意図されています

0グッド

0クリップ

投稿2021/03/12 14:49

編集2021/03/12 14:55

前提・実現したいこと

swift初心者です。swift navigationBarをコードから追加したいです
ViewController(navigationBarなし)からmodal遷移でSettingsViewController(navigationBarあり)を呼び出す感じです。
SettingsViewControllerにnavigationBarをつけたかったのでネットに書いてあったやり方をやったが、何も起こリませんでした。

該当のコード

swift

1Appdelegate.swift 2var window: UIWindow? 3var navigationController: UINavigationController? 4func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 5 // Override point for customization after application launch. 6 let viewController:UIViewController = SettingsViewController() 7 navigationController = UINavigationController(rootViewController: viewController) 8 9 self.window = UIWindow(frame: UIScreen.main.bounds) 10 self.window?.rootViewController = navigationController 11 self.window?.makeKeyAndVisible() 12 return true 13} 14

swift

1ViewController.swift 2~~~省略~~~ 3func settingsButtonTapped() { 4 let uvc = SettingsViewController() 5 self.present(uvc, animated: true, completion: nil) 6}

swift

1SettingsViewController.swift 2class SettingsViewController : UIViewController,UITableViewDelegate,UITableViewDataSource { 3 var leftBarButton: UIBarButtonItem! 4 var rightBarButton: UIBarButtonItem! 5 6override func viewDidLoad() { 7 self.navigationItem.title = "Top Page" 8 9 leftBarButton = UIBarButtonItem(title: "< Previous", style: .plain, target: self, action: #selector(tappedLeftBarButton)) 10 11 rightBarButton = UIBarButtonItem(title: "Next >", style: .plain, target: self, action: #selector(tappedRightBarButton)) 12 13 self.navigationItem.leftBarButtonItem = leftBarButton 14 self.navigationItem.rightBarButtonItem = rightBarButton 15}

試したこと

UINavigationBarをself.viewにaddsubviewをしたらnavigationBarは現れたものの、pushViewControllerはできない。完全に手が詰まりました。その他色々してみましたが結果だめでした。二時間以上ここで詰まってるので、誰か原因を教えていただけないでしょうか泣

補足

質問に関係ないところは、全て省略しております。

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

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

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

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

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

hoshi-takanori

2021/03/12 15:00

SettingsViewController を UINavigationController に入れて、その UINavigationController に modal 遷移すれば良いのでは。
ryu0118

2021/03/12 15:05

できました!!ありがとうございます!!
guest

回答1

0

自己解決

swift

1ViewController.swift 2func settingsButtonTapped() { 3 let uvc = SettingsViewController() 4 let nav = UINavigationController(rootViewController: uvc) 5 self.present(nav, animated: true, completion: nil) 6}

これで解決できました!!!

投稿2021/03/12 15:06

ryu0118

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問