Botões adicionados, webview, pontos de venda, mas não podem jogar com eles no código
-
21-09-2019 - |
Pergunta
Fiz uma barra de ferramentas com dois botões. Eu então criei dois pontos de venda no meu controlador de classe. Em seguida, conectei o controlador aos botões e selecionei as saídas.
Finalmente, reescrevi os arquivos da classe (que adicionaram:
IBOutlet id next;
IBOutlet id previous;
para o meu arquivo .h).
Então agora, tudo parece bem. Mas então eu tento algum lugar no código para alterar o estado de um dos meus botões assim:
next.enabled = YES;
Eu tentei com si mesmo. Além disso, mas infelizmente recebo esta mensagem de erro: Erro: Solicitação de membro 'ativado' em algo que não é uma estrutura ou união
Você tem alguma idéia do que está acontecendo lá?
E sim eu tenho:
#import <UIKit/UIKit.h>
:)
Usando:
[next setEnabled:YES];
Não me dá nenhum erro, mas ainda não funciona ...
E, finalmente, para documentar os propósitos, aqui está todo o método:
- (void)viewDidLoad {
[super viewDidLoad];
if (!self.currentLevel) {
self.currentLevel = @"1";
}
NSArray *etape = [self.etapes objectForKey:self.currentLevel];
if ([etape count] > 0) {
self.navigationItem.title = [etape objectAtIndex:1];
if ([etape count] > 1) {
[next setEnabled:YES];
}
} else {
self.navigationItem.title = @"Aucune étape";
}
}
Quando eu faço:
NSLog(@"%@", [next class]);
Ele retorna (nulo) ... Eu acho que deveria ser Uibarbuttonitem ...
Parece que é impossível brincar com qualquer tomada, mesmo que eu não receba erros enquanto brinca com eles ...
Solução
Isso deve ser:
IBOutlet UIButton * next;
IBOutlet UIButton * previous;
Outras dicas
Não tenho certeza sobre o iPhone SDK porque não o uso, mas você habilita/desativa os itens da barra de ferramentas usando o seguinte método. Normalmente, uso o rótulo do botão para identificar qual botão eu direciono.
-(BOOL)validateToolbarItem:(NSToolbarItem*)theItem {
BOOL shouldEnable = YES;
NSString* itemLabel = [theItem label];
if ([itemLabel isEqualToString:@"next"]) {
shouldEnable = NO;
}
return shouldEnable;
}