如何使用自定义后退按钮返回上一个视图控制器?

时间:2013-02-07 04:35:20

标签: iphone uiviewcontroller uinavigationcontroller

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

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

[navigationController pushViewController:locationViewController animated:YES];

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

3 个答案:

答案 0 :(得分:9)

使用它:

-(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给出你的控制器名称......在主页按钮的操作中添加它。

答案 1 :(得分:0)

创建后退按钮:

    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]
 }

答案 2 :(得分:0)

试试这个,

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;