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

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

新規登録して質問してみよう
ただいま回答率
85.51%
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回答

1854閲覧

[swift/iOS]UITabBarで初期選択させたい

entaro12345

総合スコア72

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クリップ

投稿2020/06/08 05:13

編集2020/06/08 05:15

前提・実現したいこと

swift言語でiOSアプリを実装しています。
UITabBarコントロールにてタブ選択によって表示内容を変更させるページを作成しているのですが、
初期表示時にどれもタブが選択されていない状態になってしまいます。
固定でいいので一番左のタブを選択している状態で表示させる方法をご教示いただけますと幸いです。

恐れ入りますが、お力を貸してください。

該当のソースコード

swift

1import UIKit 2 3class ViewController: UIViewController, UITabBarDelegate { 4 5 var iWidthScreen:CGFloat = 0.0 6 var iHeightScreen:CGFloat = 0.0 7 8 var scrollView = UIScrollView() 9 var myScrollView:MyScrollView! 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 14 iWidthScreen = self.view.frame.size.width 15 iHeightScreen = self.view.frame.size.height 16 17 let nav = UINavigationBar() 18 nav.frame = CGRect(x: 0, y: 45, width: self.view.frame.width, height: 50) 19 nav.barTintColor = UIColor.black 20 nav.titleTextAttributes = [ 21 .foregroundColor: UIColor.green 22 ] 23 let navItem:UINavigationItem = UINavigationItem(title: "タイトル") 24 nav.pushItem(navItem, animated: true) 25 self.view.addSubview(nav) 26 27 // タブ用スクロールバー 28 scrollView = UIScrollView() 29 scrollView.frame = CGRect(x: 0, y: 100, width: iWidthScreen, height: 30) 30 scrollView.contentSize = CGSize(width: 500, height: 30) 31 32 myTabBar = MyTabBar() 33 myTabBar.frame = CGRect(x: 0, y: 0, width: iWidthScreen, height: 30) 34 myTabBar.barTintColor = UIColor.black 35 myTabBar.unselectedItemTintColor = UIColor.white 36 myTabBar.tintColor = CustomClass.CustomUIColor().basicGreen() 37 38 self.createData() 39 UITabBarItem.appearance().setTitleTextAttributes([.font : UIFont.systemFont(ofSize: 16)], for: .normal) 40 UITabBarItem.appearance().setTitleTextAttributes([.font : UIFont.boldSystemFont(ofSize: 18)], for: .selected) 41 } 42 43 private func createData() { 44 // APIより情報を取得し格納 ※略 45 self.aData = data 46 47 self.setBuildingInfo(0) 48 self.myTabBar.items = self.arrTabItems 49 self.myTabBar.delegate = self 50 self.scrollView.addSubview(self.myTabBar) 51 self.view.addSubview(self.scrollView) 52 } 53 } 54 55 // タブタップ時イベント 56 func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) { 57 58 let tabData = self.aData[item.tag] 59 60 let vc = UIViewController() 61 vc.view.backgroundColor = UIColor.black 62 63 self.myScrollView = MyScrollView() 64 self.myScrollView.backgroundColor = UIColor.black 65 self.myScrollView.frame = CGRect(x: 0, y: 135, width: self.iWidthScreen, height: self.iHeightScreen * 0.8) 66 self.myScrollView.contentSize = CGSize(width: self.iWidthScreen, height: 750) 67 self.myScrollView.isUserInteractionEnabled = true 68 69 for j in 0..<tabData.count { 70 let data = tabData[j] as! Dictionary<String, AnyObject> 71 72 let iWidthVScreen:CGFloat = vw.frame.size.width 73 let iHeightVScreen:CGFloat = vw.frame.size.height 74 75 let lblTime = UILabel() 76 lblTime.frame = CGRect(x: iWidthVScreen * 0.6, y: iHeightVScreen * 0.55, width: 50, height: 15) 77 lblTime.text = data["sTime"] 78 lblTime.textColor = UIColor.white 79 lblTime.font = UIFont.systemFont(ofSize: 14) 80 vw.addSubview(lblTime) 81 } 82 self.view.addSubview(self.myScrollView) 83 } 84}
import UIKit class MyTabBar: UITabBar { override func sizeThatFits(_ size: CGSize) -> CGSize { var size = super.sizeThatFits(size) size.height = 30 return size } }

補足情報(FW/ツールのバージョンなど)

MacOS High Sierra
Xcode 10.1
Swift 3.1

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

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

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

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

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

guest

回答1

0

ベストアンサー

self.myTabBar.items = self.arrTabItems

の後で

self.myTabBar.selectedItem に表示したいアイテムをセットしてあげればいいです。

参考:
https://developer.apple.com/documentation/uikit/uitabbar/1623453-selecteditem

投稿2020/06/08 06:38

takabosoft

総合スコア8356

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

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

entaro12345

2020/06/08 06:50

ありがとうございます。 ご回答いただきました通り、実装したところちゃんと選択されて表示することができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問