[[Programming]] Tab Bar Application では任意のView を追加することができる. [[ここ:http://d.hatena.ne.jp/kurusaki/20081204/1228325765]]を参考にした. #contents * View の追加.TableView も同様 [#rb3c7a0d] 手順は - View.xib を新規に作成.NewView.xibとする - Libraryから View Controller を選択,MainWindow.xibのTab Bar Controllerの下,Tab Barにドラッグ & ドロップ - Tab が増えるので,その View をクリック.Inspector の NIB Nameに先に用意した NewView.xib の名前を設定 - この新しいタブの View 用の UIViewController クラスファイルを新規作成する.NewViewController.h と NewViewController.m とする. - NewView.xib を開いて,File's Owner のクラスを今作成した NewViewController とする. - File's Owner と View をアウトレット接続する - View の Inspectorで View Simulated Bar Metrics の Status Bar と Bottom Bar を設定しておく これで実行できるTableView でも同じ手続きで追加できる. * Tab 間の移動 [#f9ce4ec0] さて,今,最初のタブから NewView タブに移動し,何かのタイミングで,最初のタブに戻りたいとする.TabBar アプリでは,各Viewは配列としてアクセスできる. たとえば IBAciton として指定されたメソッドに以下を追加することで,最初のタブに移動できる. self.tabBarController.selectedIndex = 0; か self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:0]; ただ,この際,アニメーションを行う方法が分からない viewDidAppear:(BOOL)animated というめっそどがあるのだが,これではなさそうである.(クラスでオーバーライトを忘れたかもしれない。月曜に要確認) というメソッドがあって紛らわしい(%%クラスでオーバーライトを忘れたかもしれない。%%). と思って検索したら[[次のような情報:http://osdir.com/ml/iPhoneSDKDevelopment/2009-03/msg00217.html]]があった. > I'm switching between a view maintained by UITabBarController & a view maintained by UIViewController. The switching is done through flip animation -- UIViewTransitionFlip I think, I'm not on my dev box now. To achieve the view switching in this way you cannot add UITabBarController.view onto window.view as you normally do. < > I think I have finally found a solution to this, neatly. What I did was: < -1. Create a RootViewController : UIViewController -2. Create a TabController : UITabBarController. Then assign UIViewControllers/UINavigationControllers as required. -3. Create OtherSideView : UIViewController. -4. Add TabController.view onto RootViewController.view. -- a. Before adding TabController.view onto RootViewController.view set RootViewController.view.frame with UIScreen.mainScreen.bounds. -- b. I have to do the above to allow TabController.view scales & fits nicely otherwise the view will shift down about 20 pixel. I have no idea why. -5. Add RootViewController.view onto window.view -6. When switching the views or animating the flipping, if you like, before adding the OtherSideView.view onto RootViewController.view, -- do set RootViewController.view.frame with UIScreen.mainScreen.applicationFrame. This to allow OtherSideView.view to be fitted and scaled nicely.