【问题标题】:How to go back to previous view controller using custom back button?如何使用自定义后退按钮返回上一个视图控制器?
【发布时间】:2013-02-07 04:35:19
【问题描述】:

我是 iOS 开发的新手。我将使用以下语句进入下一个屏幕。

locationViewController = [[LocationViewController alloc] initWithNibName:@"LocationViewController" bundle:nil];

[navigationController pushViewController:locationViewController animated:YES];

现在我想通过点击当前屏幕顶部栏上的自定义后退按钮返回上一个屏幕。

【问题讨论】:

  • +1 干杯!!! @Bharat Dodeja

标签: iphone uiviewcontroller uinavigationcontroller


【解决方案1】:

使用这个:

-(IBAction)back:(id)sender
{
    [self.navigationController popViewControllerAnimated:YES];
}

对于主页按钮:

NSArray *viewContrlls=[[self navigationController] viewControllers];
for( int i=0;i<[ viewContrlls count];i++)
{
    id obj=[viewContrlls objectAtIndex:i];
    if([obj isKindOfClass:[Rate_O_MeterViewController class]])
    {
        [[self navigationController] popToViewController:obj animated:YES];
        return;
    }
}

在 Rate_O_MeterViewController 的位置给出你的控制器名称...在主页按钮的操作中添加它。

【讨论】:

  • 感谢@Vishal 的帮助。还有一个问题。我在顶部栏的右侧有另一个按钮。通过单击该按钮,它应该导航到主屏幕(即应用程序的第一个屏幕)。
  • [self.navigationController popToRootViewControllerAnimated:YES];...在您的操作中使用这一行。
  • 它去了根viewcontroller,但我忘了告诉你我有启动屏幕作为第一个viewcontroller。对不起,这是我的错。第二个viewcontroller 是主屏幕。我可以在第一次进入主屏幕后从堆栈中删除启动屏幕viewcontroller 吗?这样在根上,就会有主屏幕的viewcontroller
  • 目前你的按钮在第三个控制器的哪个控制器中?
  • 您也可以使用此方法弹出到任何特定视图:[self.navigationController popToViewController:YOUR_VIEW_CONTROLLER> animated:YES]
【解决方案2】:

试试这个,

appDelegate.m - didFinishLaunchingWithOptions 方法

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
//-----------navigation view--------------
UINavigationController *navHomeController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.window.rootViewController = navHomeController;

【讨论】:

    【解决方案3】:

    创建一个后退按钮:

        UIBarButtonItem * backButton=[[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:self action:@selector(goBack:)];
        self.navigationItem.leftBarButtonItem=backButton;
    

    并写一个函数:

    -(void)goBack:(id)sender
     {
          [self.navigationController popViewControllerAnimated:YES]
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多