2015-04-30 5 views
2

Я хочу иметь несколько контроллеров просмотра на раскадровке приложения «Наблюдение». Проблема в том, что я хочу загрузить другой контроллер начального представления в зависимости от цели, для которой я создаю.Как установить начальный контроллер на раскадровке программным обеспечением WKInterfaceController?

Я вижу, что на WKInterfaceController есть одно значение, называемое «начальным контроллером», но я не могу найти способ программно установить исходный вид. Я пробовал использовать другие методы, но все нажимают второй вид поверх первоначального исходного кода, который не то, что я хочу (у вас есть кнопка возврата на верхнем баре).

Если у вас есть способ, вы можете придумать поддержку этого, это здорово. Создание другого файла раскадровки - последний вариант.

+0

Флаг контроллера начального представления - это всего лишь запись в файле раскадровки. Вы не можете установить его во время выполнения. – Paulw11

+0

@ Paulw11 Я так понимаю, но есть ли способ установить начальный WKViewController? – Idan

ответ

4

На самом деле решение действительно прост. Верно, что страницы строятся до того, что я должен был перестроить во время выполнения. Более того, флаг (Is initial Controller) не может быть изменен во время выполнения, но вы можете все построить с нуля.

Я установил идентификатор WKViewController к «exampleViewControllerName» (на раскадровке) и добавьте этот код в awakeWithContext: контекст

NSArray *array1=[[NSArray alloc] initWithObjects:@"exampleViewControllerName", nil]; 
[WKInterfaceController reloadRootControllersWithNames:array1 contexts:nil]; 

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

0

Что вы на самом деле спрашиваете, как вы можете управлять начальным контроллером вида приложения для набора часов.

Из Apple Watch Programming Guide

Все контроллеры интерфейса в интерфейс страницы на основе создаются и инициализируется перед отображением интерфейса, но отображается только один интерфейс контроллер одновременно. Обычно WatchKit сначала отображает первый интерфейсный контроллер в последовательности. Чтобы изменить исходный отображаемый интерфейс контроллера , вызовите метод из его метода init или awakeWithContext:.

Если вы используете иерархический интерфейс, а не интерфейс на основе страниц, ваше приложение всегда будет начинать с того же начального вида.

+0

Спасибо за это, пожалуйста, проверьте мой ответ. Это можно сделать ... – Idan

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