ios - Xcode, onde atribuir o identificador segue




swift uistoryboard (3)

Perdoe-me pela pergunta do iniciante. Eu sei que posso mudar para outra tela (ViewController) como esta

self.performSegueWithIdentifier ("SecondViewController", sender: self)

mas parece que não consigo encontrar onde atribuir o ID à minha segunda tela, apenas localizo o Storyboard ID, é isso?

Eu já tentei, só recebi uma falha com o seguinte erro:

Receiver () não tem segue com o identificador 'SecondViewController'

Qualquer ideia? obrigado


No seu código

self.performSegueWithIdentifier ("SecondViewController", sender: self)

a string "SecondViewController" parece com o ID do storyboard. No mesmo local, você deve escrever o identificador segue, não o ID do storyboard.

Siga a captura de tela e atribua o nome do identificador segue clicando no campo segue na barra superior direita. você pode fazer assim

self.performSegueWithIdentifier ("WriteSegueIdentifierName", sender: self)


Quando você vincula um controlador de exibição a outro controlador de exibição no storyboard, no link entre eles, é necessário atribuir um identificador segue, ou seja, "SecondViewController" apenas para que seu código funcione.

Como alternativa, você também pode mostrar outro controlador de exibição por meio do ID do storyboard usando self.storyboard.instantiateViewControllerWithIdentifier ("// ID do storyboard desse controlador de exibição") e, em seguida, usar o controlador de exibição atual / de exibição.


O identificador de segmento não é o mesmo que o ID do storyboard , o ID do storyboard usado quando você deseja criar um View Controller com base nesse storyboard específico - e deve ser exclusivo, diferentemente do identificador segue -.

Se você já sabe como criar uma segue, pode pular esta parte.

Adicionando uma segue entre dois viewControllers:

No Interface Builder, pressione a tecla Ctrl e arraste entre os dois View Controllers que você deseja vincular (certifique-se de estar arrastando a partir do próprio view controller, não da vista principal). Você deveria ver:

Escolha o "Show" - por exemplo -, a saída deve ser assim:

Como mostrado acima, a seta circundada pelo retângulo vermelho é a seguinte.

Nota adicional: se você selecionou a opção "Mostrar", é necessário incorporar o seu primeiro Controlador de exibição em um Controlador de navegação (selecione seu primeiro controlador de exibição -> Editor -> Incorporar -> Controlador de navegação), a saída será semelhante a:

Porque o "Show" significa entrar em uma pilha do controlador de navegação.

Atribuindo um identificador para o segue:

Selecione o segue, no inspetor de atributos, você verá o campo de texto "Identificador", é isso! certifique-se de inserir exatamente o mesmo nome usado em performSegueWithIdentifier .

Se você não sabe onde encontrar o inspetor de atributos, ele fica no canto superior direito:

Além disso:

Para adicionar várias sequências de um View Controller, siga o mesmo processo ( ctrl + arraste do primeiro controlador para o outro View Controller), a saída deve se parecer com:

Nesse caso, você pode enfrentar o problema de como reconhecer quais seguimentos foram executados, substituindo o método prepare(for:sender:) é a solução, você pode fazer a verificação com base na propriedade identifier seguimentos:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if (segue.identifier == "firstSegueIdentifier") {
        // ...
    } else if (segue.identifier == "secondSegueIdentifier") {
        //...
    }
}

qual seria o nome que você adicionou às segue no storyboard.





uistoryboardsegue