首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LogOut按钮创建back按钮

LogOut按钮创建back按钮
EN

Stack Overflow用户
提问于 2016-05-12 12:35:16
回答 7查看 4.8K关注 0票数 0

我在我的UITableViewController中创建了一个按钮,作为一个左栏按钮项目来记录当前用户的退出和segue,并登录到ViewController

问题是,点击它会在登录ViewController上创建一个back按钮,用户可以返回到前面的视图。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2016-05-12 12:53:31

你的建筑是错的。您不应该对登录控制器做一个segue,这样导航堆栈就不会是空的,并且在注销事件之前就有了所有的视图控制器。当您按下注销按钮时,您可以做的是:

如果是根视图控制器:

代码语言:javascript
复制
[self.navigationController popToRootViewControllerAnimated:true];

若否,则:

代码语言:javascript
复制
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    UIViewController *login = [storyboard instantiateViewControllerWithIdentifier:@"Login"];
    [self.navigationController setViewControllers:@[login] animated:true];
票数 2
EN

Stack Overflow用户

发布于 2016-05-12 12:44:28

通常,应用程序流的工作方式类似于我们将loginViewController设置为应用程序的rootviewcontroller,并且根据应用程序流及其需求推送nextViewController。但在您的情况下,您需要在注销时再次推送loginViewController,而需要popToRootViewControllerAnimated代码。

因此,在注销按钮clickEvnet上使用以下代码:

代码语言:javascript
复制
[self.navigationController popToRootViewControllerAnimated:YES];

我不建议使用隐藏BackBarButton,并做任何其他的技巧,你可以简单地放置一个popToRootViewControllerAnimated

如果您正在快速执行代码,您可以使用以下代码:

代码语言:javascript
复制
 self.navigationController?.popToRootViewControllerAnimated(true)

UPDATE我只是为您创建一个示例。您可以从以下网址下载:

https://github.com/nitingohel/swiftSeque

其产出如下:

票数 4
EN

Stack Overflow用户

发布于 2016-05-12 12:57:55

我认为你的应用程序导航控制器的流程是错误的。登录视图控制器应该是导航控制器的根视图控制器,或者是初始视图控制器。您有另一个视图控制器,类似于Wybierz miasto !!不应该这样的。

你可以打电话给

代码语言:javascript
复制
 [self.navigationController popToRootViewControllerAnimated:YES]; 

从导航堆栈的任意视图控制器到rootview控制器。(即注销)。

如果您必须像这样要求流,那么您可以隐藏并显示回退按钮,

代码语言:javascript
复制
  self.navigationItem.hidesBackButton = YES; //NO for show

如果您想隐藏特定视图控制器的导航栏,可以如下所示

代码语言:javascript
复制
 -(void)viewWillAppear:(BOOL)animated{

     [self.navigationController.navigationBar setHidden:YES];
  }

 -(void)viewDidDisappear:(BOOL)animated{

  [self.navigationController.navigationBar setHidden:NO];
 }

评论中的要求快速更新

代码语言:javascript
复制
    self.navigationItem.hidesBackButton = true

代码语言:javascript
复制
   self.navigationController!.popToRootViewControllerAnimated(true)

代码语言:javascript
复制
  override func viewWillAppear(animated: Bool) {
    self.navigationController!.navigationBar.hidden = true
}

override func viewDidDisappear(animated: Bool) {
    self.navigationController!.navigationBar.hidden = false
}

避免错误的迅速,如果有任何!不太熟悉斯威夫特!

希望这会有所帮助:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37187066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档