按UIButton会将新视图推送到导航堆栈

时间:2010-12-09 16:13:54

标签: iphone uinavigationcontroller uibutton

我目前有一个附有视图的窗口,它有三个UIButtons。当用户按下按钮时,我希望视图使用NavigationController更改为新视图。

所以现在我的约按钮编码如下:

UIButton *aboutButton = [UIButton buttonWithType:UIButtonTypeCustom];
aboutButton.frame = CGRectMake(236, 240, 60, 60);
[aboutButton setImage:[UIImage imageNamed:@"About.png"] 
    forState:UIControlStateNormal];
[aboutButton addTarget:self action:@selector (aboutButtonPressed) 
    forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:aboutButton];

对于动作功能:

-(void)aboutButtonPressed {
    UINavigationController *aboutView =[[UINavigationControlleralloc] initWithNibName:@"About" bundle:nil];
    [self.navigationController pushViewController:aboutView animated:YES];
    [self.view addSubview:aboutView.view];
    [aboutView release];
}

About.xib文件目前没有任何内容。

现在问题...当按下按钮时,顶部导航栏出现在顶部,但不是像我编码的动画一样。它只是弹出。此外,没有后退按钮可以通过按钮返回到视图。我究竟做错了什么?如果不够清楚,我可以提供更多代码或细节。

编辑:这是一张图片,可以更好地了解正在发生的事情。

点击“关于”按钮后:

http://dl.dropbox.com/u/1481176/Screen%20shot%202010-12-09%20at%2011.28.40%20AM.png

编辑2:删除了一些不应该存在的后退按钮的代码。

1 个答案:

答案 0 :(得分:1)

pushViewController之后的大多数代码看起来很狡猾。

-(void)aboutButtonPressed {
    AboutViewController *aboutView =[[AboutViewController **alloc**] initWithNibName:@"About" bundle:nil];
    [self.navigationController pushViewController:aboutView animated:YES];
    [aboutView release];
}

这应该至少将你的空视图推到堆栈上并自动给你一个后退按钮。