2010-12-09 54 views
1

我目前有一个附带有三个UIButton的视图窗口。当用户按下按钮时,我希望视图使用NavigationController更改为新视图。按UIButton将新视图推入导航栈

所以现在我有大约按钮编码就像这样:

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

pushViewController之后的大部分代码看起来都很狡猾。

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

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

+0

我删除了后退按钮代码,现在它看起来像你有什么+ [self.view addSubview:aboutView.view];因此视图实际上弹出...但它仍然无法按预期工作。 – SalsaSalsa 2010-12-09 16:26:29

相关问题