no meu aplicativo, eu tenho um botão que executa um programaticamente:
- (void)myButtonMethod
{
//execute segue programmatically
[self performSegueWithIdentifier: @"MySegue" sender: self];
}
Gostaria de saber se existe uma maneira de referenciar a exibição de destino e passar alguns parâmetros.
Eu sei que no prepareForSegue
método, posso me referir a ele com:, myDestinationViewController *vc = [segue destinationViewController];
mas não sei como executar isso segue programaticamente.
Você tem alguma ideia?
Obrigado yassa
ATUALIZAR:
Sinto muito por esta pergunta !!! Simplesmente descobri que, mesmo que o segue seja chamado programaticamente, o prepareForSegue
método é chamado assim mesmo e, portanto, é possível passar parâmetros da mesma maneira usual.
ios
view
parameters
storyboard
segue
yassassin
fonte
fonte
Respostas:
A resposta é simplesmente que não faz diferença como a sequência é acionada.
O
prepareForSegue:sender:
método é chamado em qualquer caso e é aqui que você passa seus parâmetros.fonte
Pergunta antiga, mas aqui está o código sobre como fazer o que você está perguntando. Nesse caso, estou passando dados de uma célula selecionada em uma visualização de tabela para outro controlador de visualização.
no arquivo .h da visualização trget:
no arquivo .m:
dataModel
pode serstring
,int
ou, nesse caso, é um modelo que contém muitos itensOU...
fonte
Swift 4:
Swift 3:
fonte
Eu entendo o problema de executar as segue em um só lugar e manter o estado para enviar parâmetros em preparação para segue.
Eu descobri uma maneira de fazer isso. Adicionei uma propriedade chamada userInfoDict a ViewControllers usando uma categoria. e eu substituí executar executar segue com identificador também, de tal maneira que Se o remetente for auto (significa o próprio controlador). Ele passará esse userInfoDict para o próximo ViewController.
Aqui, em vez de passar o UserInfoDict inteiro, você também pode passar os parâmetros específicos, como remetente e substituir de acordo.
Uma coisa que você precisa ter em mente. não esqueça de chamar super método no seu método performSegue.
fonte
Caso você use uma nova versão rápida.
fonte