2016-04-17 2 views
3

Я работаю над iOS-приложением, и я хочу разбить его на пару раскадровки, проблема в том, что я не могу понять, как установить ссылки между Storiesboards в качестве точки входа.Можно ли ссылаться на другие раскадровки в раскопках?

Например, я хочу, чтобы мои Main.storyboard выглядеть примерно так:

--> Authentication Storyboard --> Tabbed Storyboard --> ...

Я новичок в разработке IOS и я бы ожидать, что это будет просто, но не могу показаться, чтобы найти путь к сделай это.

+0

вы хотите больше, чем один раскадровки, например, Login.storyboard, Main.storyboard, и вы путаетесь, как вызвать контроллеры из разных раскадровки? –

ответ

2

Да, вы можете использовать несколько раскадровки в проекте. НО Нет, вы не можете ссылаться на них непосредственно из другого раскадровки.

Реферирование раскадровки использовать при запуске

Вашего целевой проект может использовать любого из раскадровка, содержащихся в нем. Ссылка на точку входа в раскадровку можно найти в целевых настройках.

enter image description here

  1. Выберите цель
  2. Выберите вкладку Общей
  3. В раскрывающемся меню для главного интерфейса выбрать, какие раскадровки использовать изначально.

Реферирование раскадровки в коде

Таким образом, в этом примере я хочу выдвинуть ViewController на навигационный контроллер. Контроллер view, который я хочу ссылаться, может быть в другом раскадровке или текущем, который я использую. Код не заботится ...

if let storyboard = UIStoryboard(name: "A2ndStoryboard", bundle: nil) { 
     if let vc = storyboard.instantiateViewControllerWithIdentifier("SomeViewController" as String) { 

     navigationController?.pushViewController(vc, animated: true) 
     } 
    } 

Если вы хотите ссылаться ViewControllers, как это вы должны убедиться, что они определены в раскадровке правильно:

enter image description here

+0

Это именно то, что мне нужно. У меня была неправильная идея, что главная раскадровка должна быть отправной точкой. Благодарю. – dk87

1

Не используйте несколько раскадровки. используйте один раскадровки с несколькими viewcontrollers с segue между ними и embednavigationcontroller. для exa используйте один диспетчер представлений для проверки подлинности, например, мудрый другой диспетчер представлений для вкладок (tabbarviewcontroller). дать segue от authenticationVC к tabbarVC. надеюсь, это поможет. :)

0

Как вы говорите, что вы новичок в разработке IOS позвольте мне попытаться резюмировать это для вас:

Interface Builder (IB) представляет собой инструмент, встроенный в Xcode, который поможет вам создать свой пользовательский интерфейс без какого-либо кода. Все, что может сделать IB, также может быть сделано программно. IB поддерживает два разных типа файлов: файлы XIB и раскадровки.

XIB файлы (расширение .xib) являются коллекции UIView объектов, которые вы можете создать с помощью IB.

Storyboards (расширение .storyboard) являются коллекции UIViewController объектов, которые все имеют view свойство, которое можно спроектировать с помощью IB.

Conlusion: Там (в настоящее время) не существует такого понятия, как тип файла Interface Builder, который представляет собой коллекцию XIBs или раскадровки. Поэтому вы не можете ссылаться на раскадровку в раскадровке на данный момент. Вместо этого вы все равно можете разделить свои контроллеры представлений на разные раскадровки и перейти между ними программно.

Вот еще один поток на SO, чтобы помочь вам начать работу с программными переходами:

How can I load storyboard programmatically from class?

Я надеюсь, что это помогает.

+0

Спасибо за этот пробой, это помогло мне лучше понять, как должны работать раскадровки. Принятый ответ имел конкретное решение, и именно поэтому я принял его, хотя я бы принял и то, и другое. – dk87

Смежные вопросы