隐藏导航栏时的奇怪行为后退按钮
我创建了一个设置为RootViewController的LoginViewController的Storyboard。如果用户已经登录,那么我只是继续到HomeViewController。隐藏导航栏时的奇怪行为后退按钮
问题出在HomeViewController上。我不希望用户导航回LoginViewController所以我想利用隐藏在HomeViewController后退按钮:
public override void ViewWillAppear(bool animated)
{
NavigationItem.SetHidesBackButton(true, false);
}
这样做会隐藏在按预期HomeViewController按钮,但是,当我浏览到任何其他VC的后退按钮仍然隐藏,但可点击,因为我可以点击按钮的位置,它将导航回到HomeVC。如果我再次导航到与之前相同的VC,Back按钮是可见的。所以基本上它只隐藏在第一次加载。
任何想法?
似乎与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
在AppDelegate而不是Storyboard中设置RootViewController有什么区别?另外你也没有真正解释我的RootViewController/NavigationController有什么问题 - 请你详细解释一下吗? – empo
@empo是的,你可以在任何地方使用它,但是如果我们可以从AppDelegate定义rootViewController,我没有看到代码,所以只是一个建议和好方法。还隐藏返回按钮,你应该使用viewDidLoad。非常感谢 :) –
不要试图隐藏按钮。使用NavigationController作为根。将登录按回家并从导航堆栈中删除登录。
谢谢。试过,但它没有奏效。 – empo