隐藏导航栏后退按钮时的奇怪行为

时间:2016-11-15 10:08:18

标签: ios xamarin xamarin.ios

我使用LoginViewController创建了我的Storyboard,并将其设置为RootViewController。如果用户已经登录,那么我只是转到HomeViewController。

问题出在HomeViewController上。我不希望用户导航回LoginViewController,因此我尝试使用以下方法隐藏HomeViewController中的后退按钮:

public override void ViewWillAppear(bool animated)
{
    NavigationItem.SetHidesBackButton(true, false);
} 

执行此操作会按预期隐藏HomeViewController上的按钮,但是当我导航到任何其他VC时,“后退”按钮仍然是隐藏的但是可以点击,因为我可以点击按钮所在的位置并且它将导航回到HomeVC。如果我再次导航到与之前相同的VC,则可以看到“后退”按钮。所以基本上它只在第一次加载时隐藏。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

那是因为你在ViewWillAppear中设置了SetHidesBackButton。 将它粘贴到ViewDidLoad()中,它应该可以正常工作。

More Info

答案 1 :(得分:0)

您分配的rootViewController以及navigationController似乎存在问题。要避免这种行为,您应该从AppDelegate导航并分配rootViewController,同时改进后退按钮隐藏代码。

如需更多帮助,请粘贴代码,谢谢!

<强> AppDelegate.swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {

     var rootView: MyRootViewController = MyRootViewController()

     if let window = self.window{
            window.rootViewController = rootView
     }

     return true
}

<强> viewDidLoad中

navigationItem.hidesBackButton = true

答案 2 :(得分:0)

请勿尝试隐藏按钮。以root身份使用NavigationController。按下登录然后回家并从导航堆栈中删除登录。