iPhone:导航到另一个设置了过渡样式和后退按钮的视图

iPhone:导航到另一个设置了过渡样式和后退按钮的视图,iphone,animation,uinavigationcontroller,uiviewanimationtransition,Iphone,Animation,Uinavigationcontroller,Uiviewanimationtransition,下面的代码在视图的导航项的选项卡栏上添加了BackButton。它很好用 // Add back button UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]; [view.navigationController setNavigationBarHidden:NO animated

下面的代码在视图的导航项的选项卡栏上添加了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];
这很好,但我的后背扣掉了。。!!是否有任何方法可以为我的新视图控制器提供特定的转换样式,并保持我的后退按钮不变


谢谢。

我找到了你问题的答案。在viewController2上放置一个导航栏,并使用interface builder或代码向其中添加一个栏按钮。然后在按下按钮的动作中

在viewController2.m中编写此函数,如果您通过interface builder添加了条形按钮,则将其与按钮按下链接起来

-(void) backButtonPressed : (id) sender
{
    [self dismissModalViewControllerAnimated:YES];
}
这应该能解决你的问题。 执行pushViewController将为您保留导航栏和所有内容,但在您的情况下,将viewController显示为modalViewController默认情况下不会为您提供导航栏,因此您必须手动将其添加到您的modalViewController(在您的情况下为viewController2)中

如果你仍然面临问题,请告诉我。我们可以很快解决它,为您节省一些时间和挫折


干杯

谢谢你的努力。我已经在一些地方做了您建议的事情,但在本例中,ViewController2是动态变量。UIViewController*viewController2=[appDelegate getViewControllerForViewID:viewID];视图Id基于用户单击的内容和我构建应用程序的方式。我不确定我是否能在这里实现你的建议。你所说的动态变量是什么意思?你肯定能实现我的建议。如果您确定每个viewController都必须显示backbutton和工具栏。为什么不在[appDelegate getViewControllerForViewID:viewID]返回的everyViewController顶部添加一个条呢。如果我误解了什么,请详细说明。我相信我可以为您找到解决方案。我不能在每个viewcontroller上添加bar。如果操作是打开ViewModal,则不会显示“后退”按钮。无论如何,似乎只有一种方法可以做到。我需要在我的设计中调整一些东西。