iphone - скрытие проблемы UIToolbar - PullRequest
0 голосов
/ 24 августа 2011

Я посмотрел на другие ответы и написал такие коды:

-(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 * панели инструментов появлялись панели инструментов.Селекторное действие с именем tbutton :, но ничего не происходит.NSLog показывал только «else», а не «if» ... Я не установил логическое значение tb1.и tb2.hidden где угодно, только в этой функции действия.

Я также хочу, чтобы панели инструментов исчезали при нажатии на кнопку, и панели инструментов уже появились.


РЕДАКТИРОВАТЬ 31 августа 2011 г .:

Я последовал совету Гамоззи и Макснера, но у меня все еще есть та же проблема.Любое решение / предложение, чтобы решить это?


РЕДАКТИРОВАТЬ 16 октября 2011:

Я думаю, что это как-то связано с alloc, init и autorelease.Я буду изучать их всякий раз, когда смогу, и выложу свой ответ, чтобы решить эту проблему:)

Ответы [ 2 ]

2 голосов
/ 24 августа 2011

Вы размещаете объекты UIToolbar внутри вашего метода действия?(или это опечатка).

Значением по умолчанию скрытого свойства является НЕТ, поэтому после того, как вы выделите UIToolbar, он будет иметь значение «НЕТ» для скрытого - вам нужно будет явно установить его вДА, чтобы изменить его на скрытый.

Я подозреваю, что вы хотите выделить свои объекты UIToolbar внутри вашего метода viewDidLoad и установить для скрытого свойства значение YES, а затем реализовать метод действия, как описано выше, но без линий выделения 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 голос
/ 29 августа 2011

Я бы рекомендовал использовать alpha вместо hidden. Таким образом, tb1.hidden = YES становится tb.alpha = 0, а hidden = NO становится alpha = 1.

...