iphone - 隐藏UIToolbar问题

时间:2011-08-24 10:42:29

标签: iphone uitoolbar

我已经查看了其他答案并编写了类似的代码:

-(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有关。我会尽可能地研究它们并发布我的答案来解决这个问题:)

2 个答案:

答案 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 = 0hidden = NO变为alpha = 1