Como adicionar métodos para a View Controller Modal no seu iPad App

Se o seu aplicativo para iPad tem uma vista Modal, você precisa adicionar métodos para o SettingsViewController.m arquivo (implementação). Estes métodos gerenciar vista Modal do app iPad e executar todas as ações de entrada do usuário.

Isso ajuda a saber o que cada seção do código fornecido pelo modelo faz, e é especialmente útil se você usar # Marca Pragma declarações para marcar cada seção de modo que você pode saltar rapidamente para a seção relevante quando necessário. O seguinte exemplo de código, que é parte de um aplicativo chamado pensamentos profundos, inclui estas declarações.

#import "SettingsViewController.h" #import "DeepThoughtsViewController.h" #import "Constants.h"@implementation SettingsViewController @ sintetizar delegado, wordsOfWisdom, slider - mark # pragma - # ciclo pragma marca de ver a vida / * // O inicializador designado. Substituir se você criar o controlador de programação e deseja executar personalização que não é apropriado para viewDidLoad.- (id) initWithNibName: (NSString *) nibNameOrNil bundle: (NSBundle *) nibBundleOrNil {if ((self = [Super initWithNibName: nibNameOrNil bundle: nibBundleOrNil])) {// inicialização personalizado} return auto -} * // * // Implementar viewDidLoad fazer a configuração adicional depois de carregar a vista, tipicamente de um nib.- (void) viewDidLoad {[super viewDidLoad] -} * / - (void) viewDidLoad {[super viewDidLoad] -self.view.backgroundColor = [UIColor clearColor] -slider.value = + kMaxSpeed ​​- ((DeepThoughtsViewController *) (self.parentViewController)) velocidade -.} marca #pragma - # pragma marca textField- (BOOL) textFieldShouldBeginEditing: (UITextField *) textField {[textField setReturnKeyType: UIReturnKeyNext] -Retornar SIM -} - (BOOL) textFieldShouldReturn: (UITextField *) textField {[textField resignFirstResponder] -Retornar SIM -} - (void) textFieldDidEndEditing: (UITextField *) textField {wordsOfWisdom = TextField.text -} # pragma - marco # pragma Controles de (IBAction) speedChanged: (id) remetente {[delegado changeSpeed: [(UISlider *) valor do emissor]] -} - (IBAction) feito {if (! [TheTextField.text isEqualToString: @ ""]) wordsOfWisdom = theTextField.text- [self.delegate settingsViewControllerDidFinish: self] -} marca #pragma - # pragma marca Orientação- (BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation {// sobrecarregado para permitir que qualquer orientation.return SIM -} marca #pragma - marca # pragma memória management- (void) didReceiveMemoryWarning {// Libera a vista, se ele não tem um superview [Super didReceiveMemoryWarning] -. // liberar quaisquer dados armazenados em cache, imagens , etc que não estão em uso} -. (void) viewDidUnload {[Super viewDidUnload] - // Libere qualquer retido subviews do principal view.// por exemplo, self.myOutlet = nil -} - (void) dealloc {[super dealloc] -} @ final

Ok, aqui está o que o código anterior faz:

  • Apesar de @propriedade declaração no cabeçalho do arquivo informa o compilador que existem métodos de acesso, é necessário um @synthesize declaração de uma propriedade para criar esses métodos. o @synthesize declaração informa o compilador para criar métodos de acesso para você - um para cada @propriedade declaração.

  • o viewDidLoad método define o plano de fundo e velocidade para o controle deslizante (que controla a velocidade de palavras de rolagem para baixo a tela do iPad).

  • o UITextFieldDelegate protocolo define as mensagens enviadas para um delegado campo de texto como parte da sequência de editar o seu texto. Quando o usuário executa uma ação que normalmente iniciar uma sessão de edição, o campo de texto chama a textFieldShouldBeginEditing: Método primeiro para ver se a edição deve realmente prosseguir. Na maioria das circunstâncias, você poderia simplesmente voltar SIM a partir deste método para permitir a edição de proceder.

  • O campo de texto chama a textFieldShouldReturn: método sempre que o usuário toca o botão de retorno no teclado para saber se deve processar o retorno. Você pode usar esse método para implementar qualquer comportamento personalizado quando o botão de retorno é aproveitado, mas para os seus propósitos, você simplesmente voltar SIM (Que é o padrão), embora você poderia voltar NÃO ignorar o botão Return.

  • Depois de dizer "sim" a esta e que, a ação real acontece com o textFieldDidEndEditing: método, que é chamado após o campo de texto renuncia seu primeiro status de resposta para dizer ao delegado que a edição foi interrompido para o campo de texto especificado, de modo que agora você tem a editados palavras de sabedoria (Que são as palavras que rolam para baixo a tela do iPad neste app).

  • Em seguida, você fornecer um speedChanged Método (do tipo IBAction) Para lidar com uma mudança de velocidade, que utiliza o delegado de changeSpeed método para alterar imediatamente a velocidade da animação na vista quando o usuário muda-lo na vista Modal.

  • Você também fornecer uma feito método que manipula a possibilidade de um campo de texto em branco. O código atribui texto do campo de texto para palavras de sabedoria apenas se o campo é não theTextField.text isEqualToString: @"".

menu