1

UITabViewControllerのビューではないペン先をロードしたい。これが私が今持っているものであり、それは機能していませんが、それはあなたに私が欲しいもののアイデアを与えるはずです:

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

    [self.view addSubview:music.view];

    [music release];    
}

ビューのボタンを押すと、別のペン先MusicPickが読み込まれ、サブビューとして読み込まれ、何かを選択して、ここに戻ります。どんな助けでもありがたい、または新しいアイデア。

4

2 に答える 2

3

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

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

于 2009-05-20T01:55:19.513 に答える
1

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

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を追加するだけの場合(オーバーレイなど)、すでに理解しているようにaddSubViewを使用でき、UINavigationControllerは必要ありません。

于 2009-05-20T02:26:32.117 に答える