在一个UINavigationController的在每个导航项目设置按钮
问题描述:
我知道这是可能使用这一个导航项目添加自定义按钮:在一个UINavigationController的在每个导航项目设置按钮
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self
action:@selector(showInfo:)
forControlEvents:UIControlEventTouchUpInside];
// Add the info button to the navigation bar
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
[self.navigationItem setRightBarButtonItem:barButtonItem
animated:YES];
[barButtonItem release];
但有推入每个子视图设置该按钮的方式导航堆栈,而不必复制此代码?
谢谢!
答
你也可以继承的UIViewController,然后覆盖:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(showInfo:) forControlEvents:UIControlEventTouchUpInside];
// Add the info button to the navigation bar
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
[self.navigationItem setRightBarButtonItem:barButtonItem animated:YES];
[barButtonItem release];
}
return self;
}
那么当哟你做一个新的风险投资,这个类的子类而不是UIViewController
答
当按下“下一个”视图控制器,你可以添加以下代码:
nextVC.navigationItem.rightBarButtonItem = [self.navigationItem.rightBarButtonItem copy];
但是你必须覆盖选择(如果你想你的按钮将数据发送到您的nextViewController对象):
[nextVC.navigationItem.rightBarButtonItem setTarget:nextVC ...];