UITabViewController のビューではない NIB をロードするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/885791

質問

UITabViewController のビューではない nib をロードしたいと考えています。これが私が現在持っているものであり、機能していませんが、これで私が何を望んでいるのかがわかるはずです。

- (IBAction)PlaylistButtonPressed:(id)sender
{
    MusicPick *music = [[MusicPick alloc] initWithNibName:@"MusicPick" bundle:nil];

    [self.view addSubview:music.view];

    [music release];    
}

ビュー内のボタンを押すと、別のペン先である MusicPick がサブビューとしてロードされ、何かを選択してすぐにここに戻るというアイデアです。あらゆる助け、または新しいアイデアを歓迎します。

役に立ちましたか?

解決

もう少し詳細を追加します。

あなたはaddSubViewを使用することによって、またはUITabBarControllerのビューに上のコントローラを押すことで、既存のUIViewControllerのビューにビューを追加することができます。後者の場合には、UITabBarControllerはRootViewControllerとUINavigationController [されている]なければならない。

私は疑って、これはあなたが何を意味するかです。したがって、あなたは、次のような何かを考えています。

- (IBAction)PlaylistButtonPressed:(id)sender
{
    // Load UIViewController from nib
    MusicPick *music = [[MusicPick alloc] initWithNibName:@"MusicPick" bundle:nil];

    // Add to UINavigationController's stack, i.e. the view for this UITabBarController view
    [self.navController pushViewController:music animated:YES];

    // Release music, no longer needed since it is retained by the navController
    [music release];   
}

これは、あなたのUITabBarControllerのビューとしてUINavigationControllerを持っており、それが呼ばれていますからNavControllerを前提としています。

あなただけのUITabBarController(例えばオーバーレイ)中のUIViewControllerのビューにUIViewのを追加したい場合は、すでに必要な、何UINavigationコントローラを考え出していないてきたように、

、そしてあなただけaddSubViewを使用することができます。

他のヒント

サブビューを直接に追加することはできません。 UITabBarController. 。これらのコントローラーの 1 つが機能する方法は、次のリストを保存することです。 UIViewControllers と、これらのそれぞれをタブに表示します。しかし、それ自体は実際にはサブビューではありません。このリストを更新する以外、タブ バー コントローラー自体を実際に変更することはありません。

あなたがやりたいことは、タブバーコントローラーの何かに影響を与えるいくつかのオプションをユーザーが選択できるようにする一時的なビューを提示することであるため、ペン先からこのビューをモーダルビューとして提示することをお勧めします 以上 タブ付きビュー。を見てみましょう UIViewControllerさんの presentModalViewController:animated: そして dismissModalViewControllerAnimated: 方法。仮定すると MusicPick のサブクラスです UIViewController, を割り当てた後 (上記のコードの最初の行で実行したように)、このメソッドに渡すだけで、残りは UIKit が処理します。それを忘れずに解放してください MusicPick 選択した値またはユーザーが入力したデータをそこから取得し終わったときのインスタンスです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top