2

iOS 開発は初めてで、コントローラーに問題があります。みんなの生活を楽にするために、問題を単純化しました。

セットアップは次のとおりです。ルート ビューは、ビュー A とビュー B の 2 つのタブを持つタブ バー コントローラーです。

ビュー A は、カメラの操作が完了した後にカメラを起動し、カメラを閉じてから、ビュー C という別のビューに移動します。現在、ビュー C はタブ バーにありません。

ビュー C にはボタンがあり、クリックすると現在のビューが閉じられ、ビュー B に移動します。ここに問題があります。ビュー C からビュー B にロードしようとすると、タブ バーが消えます。

この問題を解決する方法を知っている人はいますか?

ビュー C は写真を撮った後にしか役に立たないため、タブ バーに追加することは解決策ではありません。

ありがとう

編集: タブ間でデータを渡す方法のコードは次のとおりです。

ビュー A からビュー C を呼び出す方法:

[self dismissViewControllerAnimated:YES completion:
 ^{
     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
     ViewControllerA *A = [storyboard instantiateViewControllerWithIdentifier:@"ViewControllerA"];
     A.data1 = data1; 
     A.data2 = data2; 
     A.image = image; 
     [self presentViewController:A animated:YES completion:nil];
 }];

ビュー C からビュー B を呼び出す方法:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

{

if([segue.identifier isEqualToString:@"toViewB"]) {

    SomeClass *obj = [[SomeClass alloc] init];
    [obj setData1: _data1];
    [obj setData2: _data2.text];
    [obj setImage: _image];


    ViewControllerB *B = (ViewControllerB *)segue.destinationViewController;
    B.newObj = obj;
    [B createCell];
}

}

また、ViewB に追加したボタンも消えたことに言及したいと思います。

4

1 に答える 1

0

以下は、どのように使用できますかの簡単な例ですUITabBarController

まずファイル内のすべてのオブジェクトを作成し、UIViewController次のメソッドを使用しますUINavigationControllerAppDelegate.hAppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window=[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds ]];

    self.viewCon=[[ViewController alloc] init];
    self.navCon=[[UINavigationController alloc] initWithRootViewController:self.viewCon];
    self.navCon.navigationBar.tintColor=[UIColor blackColor];
    self.viewCon.title=@"First View";

    self.fView=[[FirstViewController alloc] init];
    self.FnavCon=[[UINavigationController alloc] initWithRootViewController:self.fView];
    self.FnavCon.navigationBar.tintColor=[UIColor blackColor];

    self.fView.title=@"Secound View";

    self.sView=[[SecoundViewController alloc] init];
    self.SnavCon=[[UINavigationController alloc] initWithRootViewController:self.sView];
    self.SnavCon.navigationBar.tintColor=[UIColor blackColor];
    self.sView.title=@"Third View";
    .
    .
    // create UIViewController and UINavigationController As you need 
    .
    .
    .
    UIImage *img1=[UIImage imageNamed:@"Australia.gif"];
    self.tbItem1=[[UITabBarItem alloc] initWithTitle:@"First Page" image:img1 tag:1];
    self.viewCon.tabBarItem=self.tbItem1;

    UIImage *img2=[UIImage imageNamed:@"Cameroon.gif"];
    self.tbItem2=[[UITabBarItem alloc] initWithTitle:@"Secound Page" image:img2 tag:2];
    self.fView.tabBarItem=self.tbItem2;

    UIImage *img3=[UIImage imageNamed:@"Canada.png"];
    self.tbItem3=[[UITabBarItem alloc] initWithTitle:@"Third Page" image:img3 tag:3];
    self.sView.tabBarItem=self.tbItem3;

    NSMutableArray *viewArr=[[NSMutableArray alloc] init];
    [viewArr addObject:self.navCon];
    [viewArr addObject:self.FnavCon];
    [viewArr addObject:self.SnavCon];


    self.tbCon=[[UITabBarController alloc] init];
    self.tbCon.viewControllers=viewArr;

    [self.window addSubview:tbCon.view];

    [self.window makeKeyAndVisible];

    return YES;
}
于 2013-03-12T12:35:00.043 に答える