【问题标题】:How to create navigation in a Xamarin.iOS app?如何在 Xamarin.iOS 应用中创建导航?
【发布时间】:2019-09-24 19:48:32
【问题描述】:

我习惯于使用 Xamarin.Forms。我在 XAML 或 C# 中创建一个页面并导航到它。但现在这是我第一次尝试创建不是 Xamarin.Forms 的 iOS 应用程序。我是从 Windows PC 上的 Visual Studio 做的(当然连接到 Mac)。我发现ViewController 类似于 Xamarin.Forms Page。但是我如何创建另一个页面并告诉应用程序导航到它?我要创建另一个UIViewController 吗?如果是这样,我如何告诉一个导航到另一个?

我发现的只是使用其他 IDE 的教程。我如何在 Visual Studio 而不是“for Mac”中做到这一点?

此外,似乎有一种方法(唯一的方法?)是使用称为故事板的东西。但是,在 VS 中,当单击解决方案资源管理器中的情节提要时,它会开始“连接到 mac”(它已经连接到该 Mac),并且有一个不断出现的进度条。它永远不会加载。因此,如果没有情节提要有另一种方式,那就更好了。

【问题讨论】:

  • PresentViewController : docs.microsoft.com/en-us/dotnet/api/…
  • @SushiHangover 所以我创建了一个继承 UIViewController 的新类(在解决方案资源管理器中),然后执行vc1.PresentViewController(vc2...)?
  • 是的,就是这样。 (当然,如果您使用的是故事板,您可以从那里实例化 VC,然后呈现/继续它,但是以非故事板的方式,这就是所需要的)
  • @SushiHangover 谢谢。您可以将其转换为答案。如果有办法做同样的事情,但要替换原来的,那将是受欢迎的。因为这个似乎将新的 over 第一个。但即使没有,我也可以简单地有一个空的,然后把所有东西都放在上面。谢谢!
  • @SushiHangover 这不起作用。 a)它没有覆盖整个屏幕到顶部。 b) 我可以把它往下拉让它消失。我也尝试了ShowViewController,结果相同。

标签: c# ios visual-studio xamarin xamarin.ios


【解决方案1】:

但是如何创建另一个页面并告诉应用导航到该页面?我要创建另一个 UIViewController 吗?如果是这样,我如何告诉一个导航到另一个?

您可以按如下方式创建它:

右键 单击 Xamarin IOS 项目 - > 添加 - > 新项目 - > 用户界面(UIViewController 类/带有 StoryBorad 的 ViewController)

我发现的只是使用其他 IDE 的教程。我如何在 Visual Studio 而不是“for Mac”中做到这一点?

这里是关于Walkthrough on Windows但是关于使用storyboard的官方文档。下面有一个示例项目。

因此,如果没有情节提要有其他方式,那就更好了。

如果 StoryBoard 中不存在 ViewController,那么您可以在没有 StoryBoard 的情况下导航到此 Controller。

this.PresentViewController(new UIViewControllerSecond(), true, null);

如果 StoryBoard 包含其他 ViewControllers ,您也可以使用 C# 导航到下一个 View。

SecondController secondController = this.Storyboard.InstantiateViewController("SecondController ") as SecondController ;
if (secondController != null)
{
    this.PushViewController(secondController , true);
}  

顺便说一下,如果将根视图控制器设置为NavigationController,请使用this.NavigationController.PushViewController(...)进行导航。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-17
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多