iPhone:使用过渡样式和“后退”按钮设置导航到另一个视图

问题描述

|| 我有以下代码将BackButton添加到视图的导航项的选项卡上。它工作正常。
// Add back button
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@\"Back\" style:UIBarButtonItemStylePlain target:nil action:nil];
[view.navigationController setNavigationBarHidden:NO animated:YES];
view.navigationItem.backBarButtonItem = backButton;
view.navigationController.navigationBar.barStyle = UIBarStyleBlack;
[backButton release];
我使用以下行导航到新的视图控制器,但它会显示认动画。
[view.navigationController pushViewController:viewController2 animated:YES];
我想更改其呈现方式,因此我尝试按照以下方式进行操作。
[viewController2 setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [view.navigationController presentModalViewController:viewController2 animated:YES];
这工作正常,但我丢失了BackButton .. !!无论如何,有没有向我的新视图控制器呈现特定的过渡样式,并且还保持我的后退按钮不变? 谢谢。     

解决方法

        我找到了您问题的答案。在viewController2上放置一个导航栏,然后使用界面生成器或使用代码向其添加一个栏按钮。然后在按钮动作中 如果您已通过界面构建​​器添加了条形按钮,则在viewController2.m中编写此函数并将其与按钮按下链接起来。
-(void) backButtonPressed : (id) sender
{
    [self dismissModalViewControllerAnimated:YES];
}
这应该可以解决您的问题。 进行pushViewController会为您带来navigationBar和所有功能的继承,但是在您的情况下,将viewController作为modalViewController呈现给您,默认情况下不会为您提供NavigationBar,因此您必须手动将其添加到您的modalViewController中(在您的情况下为viewController2)。 如果您仍然遇到问题,请告诉我。我们可以尽快修复它,并为您节省一些时间和沮丧的时间。 干杯!!!