我使用LoginViewController创建了我的Storyboard,并将其设置为RootViewController。如果用户已经登录,那么我只是转到HomeViewController。
问题出在HomeViewController上。我不希望用户导航回LoginViewController,因此我尝试使用以下方法隐藏HomeViewController中的后退按钮:
public override void ViewWillAppear(bool animated)
{
NavigationItem.SetHidesBackButton(true, false);
}
执行此操作会按预期隐藏HomeViewController上的按钮,但是当我导航到任何其他VC时,“后退”按钮仍然是隐藏的但是可以点击,因为我可以点击按钮所在的位置并且它将导航回到HomeVC。如果我再次导航到与之前相同的VC,则可以看到“后退”按钮。所以基本上它只在第一次加载时隐藏。
有什么想法吗?
答案 0 :(得分:0)
那是因为你在ViewWillAppear中设置了SetHidesBackButton。 将它粘贴到ViewDidLoad()中,它应该可以正常工作。
答案 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。按下登录然后回家并从导航堆栈中删除登录。