自定义导航iOS

时间:2014-02-19 02:59:29

标签: ios objective-c xamarin mvvmcross

我在xamarin中为ios开发应用程序,但我认为本机目标c的概念是相同的。我想要一个容器视图,导航栏下面有一个栏,它将位于所有UIViewControllers上。我去了容器类,所以我不必在所有页面上设置栏。还有另一种更有效的方法吗?该栏将包含将由直播活动更新但不能点击的图标,例如wifi状态但不是手机wifi。

我已经设法创建了一个自定义容器视图,其中包含一个导航栏和我想要的栏,并带有一个用于加载视图控件的视图包装器。我有导航工作的推动但弹出导致错误有时当快速跨越多个屏幕时,它只是停止但导航栏继续返回。我已经使用导航栏代理应该弹出等但似乎无法找出时间关闭的原因。

如果有人能指出我解决这个问题的方向,或者以不同的方式保持所有观点的相同模板,那将非常感激。欢呼声

代码示例:

的AppDelegate

 _window = new UIWindow(UIScreen.MainScreen.Bounds);
 _window.RootViewController = new ContainerView();

ContainerViewController:

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();
    NavigationController.NavigationBarHidden = false;
        var loginView = this.CreateViewControllerFor(ContainerModel.Login) as UIViewController;

        _navController = new UINavigationController(loginView);
        _navController.SetNavigationBarHidden(true, false);
        _navController.Delegate = new NavDelegate(navBar);

            containerView.AddSubview(_navController.View);

因此navBar来自我的xib文件中手动添加的导航栏,而containerView是我想在containerview中显示每个viewcontroller的地方

2 个答案:

答案 0 :(得分:0)

使用uiview代替导航栏,需要通过隐藏导航栏来更新每个xib。

答案 1 :(得分:0)

您是否可以使用具有以下结构的故事板?

- nav controller view
  - container view
    - nav controller view (hide/show nav bar as necessary)
      - content