Pergunta

No iPhone OS 3.0, você pode definir os itens da barra de ferramentas de um UINavigationController usando o método setToolbarItems:animated:. No entanto, isso requer que você passar em uma matriz de UIToolbarItems. Enquanto eu poderia programaticamente criar esses itens da barra de ferramentas, eu prefiro criá-los no Interface Builder, se possível.

Com isto em mente, eu criei um UIToolbar em "MyGreatViewController.xib" e têm povoado com os itens da barra de ferramentas queria. Então, em "MyGreatViewController.m", recebo os itens da barra de ferramentas e passá-las para setToolbarItems:animated::

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setToolbarItems: [toolbar items]];
}

... onde toolbar é um IBOutlet referindo-se ao UIToolbar.

Esta é uma abordagem bem? Existe uma maneira melhor de fazer isso? Devo apenas criar os itens de programação?

Foi útil?

Solução

É uma forma perfeitamente aceitável de fazê-lo, mas tenha em mente que os arquivos de carregamento xib é bastante caro no iPhone, e pode muito bem ser mais rápido para criar os itens da barra de ferramentas de programação em seu método viewDidLoad.

Outras dicas

Eu não sei se isso está documentado em qualquer lugar, mas eu descobri que no Interface Builder, se você ativar a barra de ferramentas do controlador de navegação, você pode arrastar itens da barra para o seu controlador de vista, e eles vão automagicamente aparecer na barra de ferramentas do controlador de navegação.

Por exemplo, aqui está o que podemos fazer (usando o Xcode 3.2 no Snow Leopard):

  1. File-> New Project .... Escolha Aplicação baseada em navegação e criar o projeto.
  2. Open MainWindow.xib no Interface Builder.
  3. Selecione o controlador de navegação, e no Inspetor de Atributos, marque a caixa "Shows Toolbar". Isso fará com que um objeto Toolbar para aparecer.
  4. Arraste um botão Item Bar da Biblioteca para a barra de ferramentas. Ele aparecerá na barra de ferramentas. Se você marcar a hierarquia no NIB, você vai ver que este novo item é um filho do RootViewController.

Parece que qualquer botão bar itens adicionados como filhos do item de navegação vai aparecer na barra de navegação, e qualquer botão bar itens adicionados como filhos do controlador de vista vai aparecer na barra de ferramentas.

(I tropeçado sobre este por acidente. Se alguém pode encontrar a documentação para esse comportamento, ou qualquer informação adicional, eu gostaria de ouvir sobre isso.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top