我已经查看了其他答案并编写了类似的代码:
-(IBAction)tbutton:(id)sender
{
tb1 = [[[UIToolbar alloc] init] autorelease];
tb2 = [[[UIToolbar alloc] init] autorelease];
if (tb1.hidden == YES && tb2.hidden == YES)
{
tb1.hidden = NO;
tb2.hidden = NO;
//toolbars implementation codes here//
}
else
{
tb1.hidden = YES;
tb2.hidden = YES;
//toolbars implementation codes here//
}
}
我不想在加载应用程序时显示两个工具栏,但是我希望在单击UIButton * toolbarbutton的名为tbutton:的选择器操作时显示工具栏,但它什么也没发生。 NSLog只显示“其他”,而不是“如果”...... 我没有设置tb1的布尔值。和tb2.hidden在任何地方,仅在此动作函数中。
我还希望单击按钮时工具栏消失,工具栏已经出现。
编辑2011年8月31日:
我遵循了gamozzii和Maxner的建议,但我仍有同样的问题。有任何解决方案/建议可以解决这个问题吗?
编辑2011年10月16日:
我认为它与alloc,init和autorelease有关。我会尽可能地研究它们并发布我的答案来解决这个问题:)
答案 0 :(得分:2)
您是在操作方法中分配UIToolbar对象吗? (或者这是一个错字)。
隐藏属性的默认值为NO,因此在分配UIToolbar后,隐藏的值为“NO” - 您需要将其显式设置为YES以将其更改为隐藏。
我怀疑你想在viewDidLoad方法中分配你的UIToolbar对象并在那里将hidden属性设置为YES,然后按照上面的方式实现你的action方法,但没有UIToolbar分配行。
即。在头文件
中IBOutlet UIToolbar *tb1;
IBOutlet UIToolbar *tb2;
@property (nonatomic, retain) IBOutlet UIToolbar *tb1;
@property (nonatomic, retain) IBOutlet UIToolbar *tb2;
实施档案
-(void)viewDidLoad {
self.tb1 = [[UIToolbar alloc] init] autorelease];
self.tb2 = [[UIToolbar alloc] init] autorelease];
self.tb1.hidden = YES;
self.tb2.hidden = YES;
}
-(IBAction) tbutton:(id)sender {
if (tb1.hidden == YES && tb2.hidden == YES)
{
tb1.hidden = NO;
tb2.hidden = NO;
//toolbars implementation codes here//
}
else
{
tb1.hidden = YES;
tb2.hidden = YES;
//toolbars implementation codes here//
}
}
答案 1 :(得分:1)
我建议使用alpha
代替hidden
。因此tb1.hidden = YES
变为tb.alpha = 0
而hidden = NO
变为alpha = 1
。