我必须在UINavigationBar中创建一个按钮,按钮应该在重启状态和取消状态之间切换,它应该调用
-(void)RestartMethod {}
在重启状态下应该调用方法
-(void) cancelMethod {}
在UIBarButtonItem的取消状态下,两个州都在使用像start.png和calcel.png这样的图像
我尝试制作两张图片并添加和删除目标,但是面对一些不好的问题, 我该怎么做? 救命啊!
答案 0 :(得分:4)
item1=[[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"DoneUp3.png"] style:UIBarButtonItemStylePlain target:self action:@selector(action1)];
item2=[[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"Pin.png"] style:UIBarButtonItemStylePlain target:self action:@selector(action2)];
-(void)action1{self.navigationItem.rightBarButtonItem = item2;}
-(void)action2{self.navigationItem.rightBarButtonItem = item1;}
答案 1 :(得分:0)
创建两个具有两个不同目标的按钮。单击一个按钮时,执行您想要的操作,并使用第二个按钮替换按钮。如果单击第二个按钮,则将其替换为按钮编号1。
答案 2 :(得分:0)
为什么不使用分段控件而不是切换按钮?即使您坚持使用单个按钮进行切换,这也是我实现它的方式。
让bool声明初始状态
BOOL buttonOn = NO;
嵌入第一个按钮,初始图像指向一个选择器
答案 3 :(得分:0)
我认为这可以帮到你:
CGRect frameimg = CGRectMake(0,0,image3.size.width,image3.size.height);
UIButton * someButton = [[UIButton alloc] initWithFrame:frameimg];
[someButton setBackgroundImage:[UIImage imageName:@“start.png”] forState:UIControlStateNormal];
[someButton setBackgroundImage:[UIImage imageName:@“calcel.png”] forState:UIControlStateSelected];
[someButton addTarget:self action:@selector(backButtonPress :) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem * mailbutton = [[UIBarButtonItem alloc] initWithCustomView:someButton];
self.navigationItem.leftBarButtonItem = mailbutton;
[mailbutton release];
New write backButtonPress: method:
-(void)backButtonPress:(id)sender{
UIButton *tmpButton = (UIButton *)sender;
tmpButton.selected = [tmpButton isSelected]?NO:YES;
if (tmpButton.selected) {
// call cancelMethod or write RestartMethod code here
}
else{
// call RestartMethod or write RestartMethod code here
}
}