我有一个程序,我希望用户能够注册一个帐户。主视图控制器有一个可以单击的寄存器按钮。我想把窗户换掉,而不是纸片或情态鞋。然后,当他们单击done时,他们将被重定向回主视图控制器。
发布于 2020-05-04 08:34:04
您可以使用以下方式导航到另一个窗口:
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==================================
我将分享一张截图,解释如下:

您将看到有两个WindowControllers和两个ViewControllers。
第一窗口控制器( (ViewController)
First View Controller:
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);
};效果:

==================================Update===============================
使用Main.storyboard Xcode接口生成器打开:

检查是否在项目中设置Storyboard ID:

https://stackoverflow.com/questions/61583503
复制相似问题