2016-05-26 5 views
3

Я читал, что:Фаза UIPageViewController

Чтобы создать контроллер представления содержимого страницы, добавим вспомогательный метод. В этом методе, в определенный момент, есть такая строка:

if let pageContentViewController = storyboard?.instantiateViewControllerWithIdentifier("PageContentViewController") as? PageContentViewController { ....`              }     ` 

Мой вопрос:

Почему ранее «раскадровка» не был объявлен, но появится, чтобы сейчас в строке выше?

ответ

0

Иногда, чтобы сделать проект проще, проект строится на разных раскадках.

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

self?.instantiateViewController.... 
// Here self refers to itself.. the only storyboard you havve 

В своем коде, однако, предпринимаются попытка доступа контроллер просмотра через другой storyBoard. Это разные раскадровка будет иметь идентификатор (который вы установили в деятельности инспектора)

//This is how you access a view controller in a different storyboard 
let storyboard = UIStoryboard(name: "yourStoryBoardID", bundle: nil) 
      let controller = storyboard.instantiateViewControllerWithIdentifier("yourViewControllerID") as UIViewController 
      self.presentViewController(controller, animated: true, completion: nil) 

Эта ссылка: «http://www.newventuresoftware.com/blog/organizing-xcode-projects-using-multiple-storyboards» является чрезвычайно полезным в предоставлении ссылки на несколько раскадровок.

Чтобы было ясно: это не связано с контроллером просмотра страниц, потому что мы используем несколько раскадровки. Кроме того, было бы лучше, если бы вы могли предоставить больше кода или ссылок.

+0

Akshansh Тхакур справа, что это точка. В вашем коде вы сначала создали экземпляр «раскадровки», а затем используете его. Вместо этого, через то, что я читаю, нет объявления для раскадровки istance, но используется только. Зачем ? – Shar3r

+0

Можете ли вы разместить снимок экрана, где вы его видите? @ Shar3r –

+0

Я думаю, что они просто использовали раскадровку, предполагая, что вы знаете, как ее объявить. Вероятно, они не использовали себя, потому что это могло вызвать путаницу в отношении того, что это за класс. Кроме того, назвав его раскадрой, они указали, что с несколькими просмотрщиками можно получить доступ с любого контроллера View –

0

Ваша переменная storyboard? должна быть экземпляром UIStoryboard, где у вас есть PageContentViewController. Вышеприведенный код Akshansh Thakur показывает вам, как создать UIStoryboard, использовать его.

Это не будет объявлено, потому что я думаю, что было достаточно ясно понять, как создать PageContentViewController. Безотносительно, создать переменную storyboard чуть выше строки кода

if let pageContentViewController = storyboard?.instantiateViewControllerWithIdentifier("PageContentViewController") as? PageContentViewController { ....}

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