Meu problema é que eu estava procurando uma maneira de usar o storyboard e o xib . Mas não consigo encontrar uma maneira adequada de carregar e mostrar o storyboard programaticamente. O projeto foi iniciado com o xib e agora é muito difícil aninhar todos os arquivos xib no storyboard. Então, eu estava procurando uma maneira de fazer isso em código, como no alloc, init, push
viewControllers. No meu caso, tenho apenas um controlador no storyboard:, UITableViewController
que possui células estáticas com algum conteúdo que quero mostrar. Se alguém souber a maneira correta de trabalhar tanto com o xib quanto com o storyboard sem grandes refatorações, agradecerei por qualquer ajuda.
fonte
[sb instantiateInitialViewController]
é útil se você deseja iniciar no controlador de exibição padrão da cena.[self presentViewcontroller]
lógica por estas linhas na seguinte ordem: 1)self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
2)self.window.rootViewController = vc;
e 3)[self.window makeKeyAndVisible];
. Você também pode provavelmente se livrar damodalTransitionStyle
linha, porque essa não é uma transição modal do delegado do aplicativo.Swift 3
Swift 2
Pré-requisito
Atribua um ID do Storyboard ao seu controlador de exibição.
IB> Mostrar o inspetor de identidade> Identidade> ID do storyboard
Swift (legado)
Edit: Swift 2 sugerido em um comentário por Fred A.
se você deseja usar sem nenhum controlador de navegação, use o seguinte:
fonte
self.storyboard
e mesclar as linhas 1 e 2No inspetor de atributos, forneça o identificador para esse controlador de exibição e o código abaixo funciona para mim
fonte
Tente isto
fonte
no rápido
NavigationController e pushController, você pode substituir por
fonte
Nos swift 3 e 4 , você pode fazer isso. A boa prática é definir o nome do Storyboard igual ao StoryboardID.
e então você pode carregar seu Storyboard no seu ViewController da seguinte maneira:
}
Ao criar um novo Storyboard, defina o mesmo nome no StoryboardID e adicione o nome do Storyboard na sua enumeração " StoryBoardName "
fonte
Você sempre pode pular direto para o controlador raiz:
fonte
A extensão abaixo permitirá que você carregue um
Storyboard
e está associadoUIViewController
. Exemplo: Se você tem umUIViewController
chamadoModalAlertViewController
e um storyboard com o nome "ModalAlert" egIrá carregar tanto o
Storyboard
eUIViewController
evc
será do tipoModalAlertViewController
. Nota Supõe que o ID do storyboard do storyboard tenha o mesmo nome que o storyboard e que o storyboard tenha sido marcado como É o controlador de exibição inicial .fonte