2015-02-25 2 views
2

Я сейчас читаю навигация раздел от An Introduction to Xamarin.Forms. Следует использовать метод GetMainPage(). Но как это должно быть использовано?Xamarin.Forms: Использование GetMainPage()

Реализация по умолчанию приложения делегата выглядит следующим образом:

Applicaton делегатом:

public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate 
{ 
    public override bool FinishedLaunching (UIApplication app, NSDictionary options) 
    { 
     global::Xamarin.Forms.Forms.Init(); 

     LoadApplication (new App()); 

     return base.FinishedLaunching (app, options); 
    } 
} 

App:

public class App : Application 
{ 
    public App() 
    { 
     MainPage = GetMainPage(); 
    } 

    public static Page GetMainPage() 
    { 
     var mainNav = new NavigationPage(new ListExample()); 
     return mainNav; 
    } 
} 

Я получил его удалось использовать GetMainPage() метод вместо получения

окна приложений, как ожидается, иметь контроллер представления корня в конце запуска

приложения Если я смотрю в (старые?) Примеры (example1, example2) приложение делегат отличается и CreateViewController() метод доступен. В моем случае это не так!

Каков правильный способ загрузки корневой страницы в стек?

+1

способ, который вы здесь показали, является правильным. Это потому, что Xamarin изменил способ инициализации приложений. Новые приложения теперь наследуются от 'Application' – user1

+0

@ user1: Так что мне больше не нужно' GetMainPage() '? Было бы неплохо, если бы Xamarin обновил свою документацию ... – testing

+0

Нет документации. Старые примеры, показывающие CreateViewController(), не являются – user1

ответ

6

Вам не обязательно использовать GetMainPage(); это всего лишь метод вы создать. Способ, которым X.Forms работает в наши дни: он предоставляет свойство MainPage в классе Xamarin.Forms Application. Вы устанавливаете это для экземпляра Page. Как вы создаете эту страницу для вас. Вы можете использовать

this.MainPage = new ContentPage { Content = ... }

или создать один файл на страницу (что ИМХО лучше для ремонтопригодности):

this.MainPage = new MyLoginPage();

или использовать вспомогательные методы, которые создают свои страницы:

this.MainPage = this.GetMainPage();

Главная страница - первая страница y наше приложение Forms. Вы можете установить для свойства MainPage другое значение, чтобы показать другую страницу.

Ранние версии форм использовались разными подходами, а не все образцы были обновлены. Теперь всем платформам нужен только вызов метода Forms Init() и вызов LoadApplication() вместо создания контроллера вида, активности или страницы (WP8).

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