我正在尝试使用Xamarin构建我的第一个iOS应用程序,并且我使用this project向左侧添加了facebook样式菜单,但是我遇到了一些问题显示。
我在app委托中加载菜单和我的第一个视图控制器,如下所示:
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
window = new UIWindow(UIScreen.MainScreen.Bounds);
Menu = new SlideoutNavigationController();
Menu.SlideHeight = 9999f;
Menu.TopView = new InitialController();
Menu.MenuViewLeft = new DummyControllerLeft();
Menu.LeftMenuButtonText = "Menu";
window.RootViewController = Menu;
window.MakeKeyAndVisible();
return true;
}
这很好用,页面加载了菜单,如果我使用菜单导航,那么所有工作都按预期工作。问题是我有从其他输入发生的导航,例如主页上的按钮按下,而不是通过菜单。当发生这种情况时,它会加载正确的页面,放置菜单按钮不再存在,我可以从左侧拖动进入菜单,但按钮丢失。我使用这样的东西移动到这个页面,这段代码是在FirstController类的ViewDidLoad函数中(用作菜单顶视图的那个)
NavigationController.PushViewController(new OnlineMembersViewController(false), true);
我对此非常陌生,所以我想我正在做些傻事。
答案 0 :(得分:2)
您应该手动添加该按钮。如果您查看SlideoutNavigationController
的来源,您会看到它仅为您在侧边菜单中导航的视图控制器添加菜单按钮。因此,您应手动设置View.NavigationItem.RightBarButtonItem
或View.NavigationItem.RightBarButtonItem
,并为其他视图控制器添加触摸事件调用ShowMenuRight/ShowMenuLeft
private void SomeEvent(object sender, EventArgs e)
{
((AppDelegate)UIApplication.SharedApplication.Delegate).Menu.ShowMenuRight();
//or
//((AppDelegate)UIApplication.SharedApplication.Delegate).Menu.ShowMenuLeft();
}