我在编写按钮时无法转到上一页。我能够去下一页思考,如果我做了同样的事情,但改变了一点,它会反向工作。不幸的是,我想出了很多我无法解决的错误,因为它不允许我使用发布功能。 这就是帮助它进入下一页的代码:
#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];
}
我该怎么做才能让后退按钮转到上一页。
答案 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建议。