如何使用导航控制器中的按钮推送视图? 我试着效仿这个例子: http://www.cimgf.com/2009/06/25/uitabbarcontroller-with-uinavigationcontroller-using-interface-builder/
这正是我需要的,我有一个UITabBarController
有4个标签,其中一个是UINavigationController
。我想从第一个视图推送包含导航控制器的视图 - 这是一个简单的UIView
。它不起作用,我尝试使用以编程方式创建的按钮,没有任何反应。有什么指针吗?
这是我的代码
@interface HomeViewController : UIViewController {
}
-(IBAction)pushViewController:(id)sender;
@end
---
#import "HomeViewController.h"
#import "NewViewController.h"
@implementation HomeViewController
-(IBAction)pushViewController:(id)sender {
NewViewController *controller = [[NewViewController alloc] initWithNibName:@"NewViewController" bundle:nil];
[[self navigationController] pushViewController:controller animated:YES];
[controller release], controller = nil;
}
以下是连接的屏幕截图 http://imageshack.us/photo/my-images/847/screenshot20110719at620.png/
我已经尝试过你们建议但仍然没有,按钮(无论是在Interface Builder
还是以编程方式创建)都表现得像是没有链接到任何方法。
答案 0 :(得分:7)
将其放在要创建按钮的位置:(例如Root VC的-viewDidLoad
)
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(100.0, 100.0, 100.0, 40.0);
[button setTitle:@"Press" forState:UIControlStateNormal];
[viewController.view addSubview:button];
[button addTarget:self action:@selector(didPressButton:) forControlEvents:UIControlEventTouchUpInside];
并实施此方法:
- (void)didPressButton:(UIButton *)sender
{
UIViewController *viewController = [[[UIViewController alloc] init] autorelease];
[self.navigationController pushViewController:viewController animated:YES];
}
答案 1 :(得分:3)
如果您使用情节提要,请手动创建一个segue
在故事板上:
它会创建一个segue,现在选择segue并给它一个标识符
现在您可以使用代码:
-(IBAction)doneAction:(id)sender
{
[self performSegueWithIdentifier:@"identifier" sender:self ];
}
现在您可以将操作连接到按钮
答案 2 :(得分:1)
要将视图推送到导航控制器,只需执行以下操作:
YourController *childController = [[YourController alloc] initWithNibName:@"YourControllerView" bundle:NSBundle.mainBundle];
[self.navigationController pushViewController:childController animated:YES];
[childController release];
现在,如果您希望按下按钮时发生这种情况,请在您的nib文件中添加一个按钮,并将其连接到Touch Up Inside事件中的IBAction
方法。