iOS开发中,使用URLManager,但是在一个登陆屏幕上,点击登陆按钮后想跳转出一个没有后退按钮的navigator的View怎么弄?

项目是这样的:

  1. 在AppDelegate里面注册ViewController和url的对应。

  2. 第一屏,上面有不同的登陆方式按钮,点击一个用账号登陆的按钮,实际是用的openURL,然后顺利弹出一个带有用户名、密码表单和一个“登陆”按钮,这个View上面的navigator上是有后退按钮的。

  3. 在登陆页面上输入用户名、密码,然后点登陆按钮,登陆验证成功,然后openURL出一个新的带有底部Tabbar的View,这个view上面的navigator不应该再有回退按钮。

问题:

我在带有tabbar的view中隐藏了回退按钮,并且把left按钮给设置成nil。但是完全不管用。所以有一下猜想,也就是问题:

是不是应该在登陆按钮按下后,跳出新view不应该再用openURL了,而是用一种新的弹出方式,navigator需要在新的viewcontroller中重新注册并生成实例? 另外是不是我可能对URLManager使用错了?

阅读 5.6k
2 个回答

按照你描述的逻辑,最好是替换window的rootController来实现,最后一个应该使用TabbarController来,而不仅仅是一个ViewController。前面那些登录用的在登录后就全部释放了,不占内存,逻辑更清晰。

这个跟URLManager无关,新版本SDK的NavigationItem有一个很诡异的地方,当barItem是nil的时候,就直接取默认。所以你要这样做:

    UIBarButtonItem *btnItem = [[UIBarButtonItem alloc]
                                initWithCustomView:[[UIView alloc] init]];
    self.navigationItem.leftBarButtonItem = btnItem;
可以写在ViewDidLoad里,也可以写在 openedFromViewControllerWithURL: 里

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题