如何在故事板中使用 xamarin 侧边栏
How to use xamarin sidebar with storyboard
我正在尝试创建一个带有侧边栏抽屉式导航的应用程序,但是控件是硬编码在您的控制器中的,就像我在示例中看到的那样,我想要的是我的侧边栏菜单,内容将在情节提要中设计,问题是我真的不知道从哪里开始。
rootviewcontroller.cs
using MonoTouch.Foundation;
using MonoTouch.UIKit;
using System;
using System.CodeDom.Compiler;
using SidebarNavigation;
namespace Casebook.IOS
{
public partial class RootViewController : UIViewController
{
public SidebarController sideBar { get; private set; }
public RootViewController() : base(null,null){
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
sideBar = new SidebarController (this,new ContentViewController(), new SideMenuController());
sideBar.MenuLocation = SidebarController.MenuLocations.Left;
}
}
sidemenucontroller.cs
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace Casebook.IOS
{
public partial class SideMenuController : BaseController
{
public SideMenuController () : base(null,null)
{
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
}
}
contentviewcontroller.cs
using System;
using System.Drawing;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace Casebook.IOS
{
public partial class ContentViewController : BaseController
{
public ContentViewController():base(null,null)
{
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
}
}
所以基本上我的代码中没有任何内容,因为我的 ui 是从我的情节提要中初始化的。
附加是我设置故事板的方式,每个视图都已由各自的控制器设置 类。
iOS 设计器中不支持 drawer/sidebar/slider/flyout/[您的别名] 菜单。
您可以在设计器中设计要使用的视图控制器的内容,然后从情节提要中加载它们并在侧边栏控制器中进行设置。
在您的故事板中,为菜单控制器和内容控制器提供一个故事板 ID,然后使用 UIStoryboard.InstantiateViewController(string)
在您的代码中创建它们的实例(您需要将结果转换为实际的 UIViewController
子类).
假设您在某个视图控制器的 ViewDidLoad()
中:
var content = this.Storyboard.InstantiateViewController ("ContentControllerId") as ContentViewController;
var menu = this.Storyboard.InstantiateViewController ("MenuControllerId") as SideMenuController;
sideBar = new SidebarController (this, content, menu);
我正在尝试创建一个带有侧边栏抽屉式导航的应用程序,但是控件是硬编码在您的控制器中的,就像我在示例中看到的那样,我想要的是我的侧边栏菜单,内容将在情节提要中设计,问题是我真的不知道从哪里开始。
rootviewcontroller.cs
using MonoTouch.Foundation;
using MonoTouch.UIKit;
using System;
using System.CodeDom.Compiler;
using SidebarNavigation;
namespace Casebook.IOS
{
public partial class RootViewController : UIViewController
{
public SidebarController sideBar { get; private set; }
public RootViewController() : base(null,null){
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
sideBar = new SidebarController (this,new ContentViewController(), new SideMenuController());
sideBar.MenuLocation = SidebarController.MenuLocations.Left;
}
}
sidemenucontroller.cs
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace Casebook.IOS
{
public partial class SideMenuController : BaseController
{
public SideMenuController () : base(null,null)
{
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
}
}
contentviewcontroller.cs
using System;
using System.Drawing;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace Casebook.IOS
{
public partial class ContentViewController : BaseController
{
public ContentViewController():base(null,null)
{
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
}
}
所以基本上我的代码中没有任何内容,因为我的 ui 是从我的情节提要中初始化的。
附加是我设置故事板的方式,每个视图都已由各自的控制器设置 类。
iOS 设计器中不支持 drawer/sidebar/slider/flyout/[您的别名] 菜单。
您可以在设计器中设计要使用的视图控制器的内容,然后从情节提要中加载它们并在侧边栏控制器中进行设置。
在您的故事板中,为菜单控制器和内容控制器提供一个故事板 ID,然后使用 UIStoryboard.InstantiateViewController(string)
在您的代码中创建它们的实例(您需要将结果转换为实际的 UIViewController
子类).
假设您在某个视图控制器的 ViewDidLoad()
中:
var content = this.Storyboard.InstantiateViewController ("ContentControllerId") as ContentViewController;
var menu = this.Storyboard.InstantiateViewController ("MenuControllerId") as SideMenuController;
sideBar = new SidebarController (this, content, menu);