eu sou novo no desenvolvimento de IOS e recentemente comecei no Xcode 4.5. Eu vi para cada viewController que eu poderia definir algumas variáveis de identidade, incluindo o ID do storyboard. O que é isso e como posso usar?
Comecei a pesquisar no stackoverflow e não consegui encontrar nenhuma explicação para isso. Presumi que não é apenas um rótulo estúpido que posso definir para lembrar do meu controlador, certo? O que isso faz?
O storyboard ID é um campo String que você pode usar para criar um novo ViewController baseado nesse storyboard ViewController. Um exemplo de uso seria de qualquer ViewController:
//Maybe make a button that when clicked calls this method-(IBAction)buttonPressed:(id)sender
{MyCustomViewController*vc =[self.storyboard instantiateViewControllerWithIdentifier:@"MyViewController"];[self presentViewController:vc animated:YES completion:nil];}
Isso criará um MyCustomViewController baseado no storyboard ViewController que você chamou de "MyViewController" e o apresentará acima do seu View Controller atual
E se você estiver no delegado do seu aplicativo, poderá usar
Vamos tentar isso e como você consegue oself.storyboard
RTB
self.storyboard pode ser acessado de qualquer viewcontroller. Vou editar minha resposta agora para que você possa ver
Eric
E se necessário para acessá-lo do meu AppDelegate ou de qualquer outra classe?
RTB
Adicionada outra edição mostrando como acessar o storyboard de qualquer arquivo.
Eric
1
self.storyboardpode ser acessado de qualquer controlador de visualização que foi carregado de um storyboard. Se o controlador de visualização não foi carregado de um storyboard, essa propriedade é nula.
rob mayoff
13
Para adicionar a resposta de Eric e atualizá-la para Xcode 8 e Swift 3:
Um storyboard ID faz exatamente o que o nome indica: ele identifica. Apenas que identifica um controlador de visualização em um arquivo de storyboard. É como o storyboard sabe qual view controller é qual.
Agora, não se confunda com o nome. Um storyboard ID não identifica um 'storyboard'. Um storyboard, de acordo com a documentação da Apple, 'representa os controladores de visualização para toda ou parte da interface de usuário do seu aplicativo'. Então, quando você tem algo como a imagem abaixo, você tem um storyboard chamado Main.storyboard que tem dois controladores de visualização, cada um dos quais pode receber um ID de storyboard (seu ID no storyboard).
Você pode usar o ID do storyboard de um controlador de visualização para instanciar e retornar esse controlador de visualização. Você pode então manipulá-lo e apresentá-lo como quiser. Para usar o exemplo de Eric, digamos que você queira apresentar um controlador de visualização com o identificador 'MyViewController' quando um botão for pressionado, você faria desta forma:
@IBAction func buttonPressed(sender:Any){// Here is where we create an instance of our view controller. instantiateViewController(withIdentifier:) will create an instance of the view controller every time it is called. That means you could create another instance when another button is pressed, for example.let vc = storyboard?.instantiateViewController(withIdentifier:"MyViewController")as!ViewController
present(vc, animated:true, completion:nil)}
O ícone de aviso amarelo indica que é devido ao fato de que o segundo controlador de visualização não possui ponto de entrada e / ou ID. Isso pode ser resolvido atribuindo a ele um ID de storyboard ou conectando-o a outro controlador de visualização no storyboard. Dessa forma, o storyboard sabe como alcançá-lo e identificá-lo.
Taiwosam de
Não consegui encontrar o campo ID do Storyboard, então obrigado pela imagem. Está na mesma posição no Xcode 9.
self.storyboard
self.storyboard
pode ser acessado de qualquer controlador de visualização que foi carregado de um storyboard. Se o controlador de visualização não foi carregado de um storyboard, essa propriedade é nula.Para adicionar a resposta de Eric e atualizá-la para Xcode 8 e Swift 3:
Um storyboard ID faz exatamente o que o nome indica: ele identifica. Apenas que identifica um controlador de visualização em um arquivo de storyboard. É como o storyboard sabe qual view controller é qual.
Agora, não se confunda com o nome. Um storyboard ID não identifica um 'storyboard'. Um storyboard, de acordo com a documentação da Apple, 'representa os controladores de visualização para toda ou parte da interface de usuário do seu aplicativo'. Então, quando você tem algo como a imagem abaixo, você tem um storyboard chamado Main.storyboard que tem dois controladores de visualização, cada um dos quais pode receber um ID de storyboard (seu ID no storyboard).
Você pode usar o ID do storyboard de um controlador de visualização para instanciar e retornar esse controlador de visualização. Você pode então manipulá-lo e apresentá-lo como quiser. Para usar o exemplo de Eric, digamos que você queira apresentar um controlador de visualização com o identificador 'MyViewController' quando um botão for pressionado, você faria desta forma:
Observe as alterações na sintaxe.
fonte