如何使用条形按钮项在导航栏上编写后退按钮

时间:2012-03-04 02:17:46

标签: iphone ios5 xcode4.2

我在编写按钮时无法转到上一页。我能够去下一页思考,如果我做了同样的事情,但改变了一点,它会反向工作。不幸的是,我想出了很多我无法解决的错误,因为它不允许我使用发布功能。 这就是帮助它进入下一页的代码:

#import "ViewController.h"

@implementation ViewController

-(IBAction)btnClicked:(id) sender
{
    //add the view of the view controller to the current View---
    if (menuView==nil) {
        menuView = 
        [[MenuView alloc] initWithNibName:@"MenuView"
                                   bundle:nil];
    }
    [self.view addSubview:menuView.view];

}
-(void)dealloc {
 [menuView release];
 [super dealloc];
}

我该怎么做才能让后退按钮转到上一页。

2 个答案:

答案 0 :(得分:0)

你这样做的方式不太正确,我建议你做一些阅读以熟悉iOS编程。

你的程序结构应该是:创建一个导航控制器(2)来管理视图控制器的堆栈,给它一个viewController(1)作为它的根。

// AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    // 1
    FirstViewController *firstViewController = [[FirstViewController alloc] init];

    // 2
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:firstViewController];
    [firstViewController release]; firstViewController = nil;

    self.window.rootViewController = navigationController;
    [navigationController release]; navigationController = nil;

    [self.window makeKeyAndVisible];
    return YES;
}

这将在UINavigationController内显示您的第一个视图控制器。 UINavigationController负责管理UIViewController的堆栈,并为您提供UI以向下导航到堆栈,并在UIViewController上正确调用所有适当的与演示相关的方法例如viewDidLoad。您应该查看The View Controller Programming Guide以获取大量信息

然后在你的第一个视图控制器中你做这样的事情来响应按钮:

- (IBAction)buttonClicked:(id)sender;
{
    SecondViewController *secondViewController = [[SecondViewController alloc] init];

    [self.navigationController pushViewController:secondViewController animated:YES];
    [secondViewController release]; secondViewController = nil;
}

这将创建一个新的视图控制器并将其推入堆栈。

答案 1 :(得分:0)

这很简单,使用它:

-(IBAction)back:(id) sender
{
    [menuView.view removeFromSuperview];
}

但是,我建议不要在许多视图中使用addSubview:,因为这样做很复杂。使用UINavigationController作为@ Paul.s建议。