1

私のアプリでは、ログイン画面から、このように classA というクラスに移動しています

classA *objUserHome = [[classA alloc]init];
        [self presentModalViewController:objUserHome animated:YES];
        [objUserHome release];

ClassAにはナビゲーションバーとタブバー(5つのタブがあります)があり、このようにプログラムでタブバーを作成しました

- (void)viewDidLoad
{
    [super viewDidLoad];
    //Create tab bar controller and navigation bar controller

    tabBarController = [[UITabBarController alloc] init];

    NSMutableArray *arrControllers = [[NSMutableArray alloc] initWithCapacity:5];

    //Add PunchClock to tab View Controller
    PunchClock* objPunchClock = [[PunchClock alloc] initWithTabBar];
    NavigationController = [[UINavigationController alloc] initWithRootViewController:objPunchClock];
    NavigationController.navigationBar.tintColor = [UIColor brownColor];
    [arrControllers addObject:NavigationController];
    [NavigationController release];
    [objPunchClock release];

    //Add Time_Sheet to tab View Controller
    Time_Sheet* objTime_Sheet = [[Time_Sheet alloc] initWithTabBar];
    NavigationController = [[UINavigationController alloc] initWithRootViewController:objTime_Sheet];
    NavigationController.navigationBar.tintColor = [UIColor brownColor];
    [arrControllers addObject:NavigationController];
    [NavigationController release];
    [objTime_Sheet release];

    //Add PTO to tab View Controller
    PTO* objPTO = [[PTO alloc] initWithTabBar];
    NavigationController = [[UINavigationController alloc] initWithRootViewController:objPTO];
    NavigationController.navigationBar.tintColor = [UIColor brownColor];
    [arrControllers addObject:NavigationController];
    [NavigationController release];
    [objPTO release];

    //Add PunchClock to tab View Controller
    CrewPunch* objCrewPunch = [[CrewPunch alloc] initWithTabBar];
    NavigationController = [[UINavigationController alloc] initWithRootViewController:objCrewPunch];
    NavigationController.navigationBar.tintColor = [UIColor brownColor];
    [arrControllers addObject:NavigationController];
    [NavigationController release];
    [objCrewPunch release];

    //Add PunchClock to tab View Controller
    Reports* objReports = [[Reports alloc] initWithTabBar];
    NavigationController = [[UINavigationController alloc] initWithRootViewController:objReports];
    NavigationController.navigationBar.tintColor = [UIColor brownColor];
    [arrControllers addObject:NavigationController];
    [NavigationController release];
    [objReports release];

    // Add this view controller array into the tab bar

    //self .viewControllers = arrControllers;
     tabBarController .viewControllers = arrControllers;

    [arrControllers release];
    [self.view addSubview:[tabBarController view]];


}

ClassA is inherited from UIViewController

問題は、 classA に移動した後、 classA のビューが 4mm 下に移動するのはこのような なぜですか?? どうすればこれを修正できますか,,plsは私を助けてくれます,,事前に感謝します

4

4 に答える 4

1

ストーリーボードを使用しModal Transition、2 つ以上のビューの間で上記のようなエラーが発生する場合があります。

Modal Transitionfrom ViewControllerAtoを使用してからfrom to back をViewControllerZ試行すると、 のビューがウィンドウからわずかに押し下げられることがあります。Modal TransitionViewControllerZViewControllerAViewControllerA

これは、次を使用して防止できます。

[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];

イベントからViewControllerZ戻るViewControllerAViewControllerZ

于 2012-10-10T12:48:37.347 に答える
0

Interface Builder または XIB ファイルでいくつかのトップ バーを選択し、さらにナビゲーション バーを設定した可能性があります。XIB ファイルのトップ バーを選択しないでください。

于 2012-07-09T05:08:04.333 に答える
0

以下のようにしてみてください

[self.navigationController.view addSubview:[tabBarController view]];
于 2012-07-09T05:14:24.273 に答える
0

長い調査の後、クラスを継承するだけでこの問題を最終的に修正しましUINavigationControllerUIViewControler

于 2012-07-09T06:23:00.243 に答える