Как мне создать пользовательский регистр Segue на Xamarin.Ma c? - PullRequest
0 голосов
/ 04 мая 2020

У меня есть программа, в которой я хочу, чтобы пользователь мог зарегистрироваться для учетной записи. Контроллер основного вида имеет кнопку register , которую они могут щелкнуть. Я хочу заменить окно вместо листов или модальных сегментов. Затем, когда они нажмут done , они будут перенаправлены обратно в контроллер основного вида.

1 Ответ

0 голосов
/ 04 мая 2020

Вы можете использовать следующий способ для перехода к другому окну:

ButtonClickEvent.Activated += (sender, e) => {
      Console.WriteLine("Button Click");

      NSWindow newWindow = new NSWindow();
      newWindow.Title = "Second Window";
      newWindow.SetFrame(new CGRect(500, 500, 300, 200),true);
      // set be key window and be front
      newWindow.MakeKeyAndOrderFront(null);
      // close current window
      View.Window.OrderOut(Self);
};

И если вернуться к предыдущему, также можете использовать этот способ.

========= =================== Update ============================== ====

Я поделюсь снимком экрана, чтобы объяснить это следующим образом:

enter image description here

Вы увидите, что есть два WindowController и два ViewControllers.

  • Контроллер первого окна (MainWindow) -> Контроллер первого вида (ViewController)
  • Контроллер второго окна (SecondWindow) -> Контроллер второго вида (SecondViewController)

Контроллер первого вида :

ButtonClickEvent.Activated += (sender, e) => {
      Console.WriteLine("Button Push");

      var storyboard = NSStoryboard.FromName ("Main", null);
      var controller = storyboard.InstantiateControllerWithIdentifier ("SecondWindow") as NSWindowController;
      // display
      controller.Window.MakeKeyAndOrderFront(null);
     // close current window
      View.Window.OrderOut(Self);
};

Контроллер второго вида :

ButtonClickEvent.Activated += (sender, e) => {
      Console.WriteLine("Button Back");

      var storyboard = NSStoryboard.FromName ("Main", null);
      var controller = storyboard.InstantiateControllerWithIdentifier ("MainWindow") as NSWindowController;
      // display
      controller.Window.MakeKeyAndOrderFront(null);
     // close current window
      View.Window.OrderOut(Self);
};

Эффект:

enter image description here

====================================== = Обновить ======================================

Открыть Main.storyboard с Xcode Interface Builder :

enter image description here

Проверить, есть ли * 10 53 * Идентификатор раскадровки устанавливается в проекте:

enter image description here

...