【问题标题】:Redirect to a specific view controller重定向到特定的视图控制器
【发布时间】:2014-02-01 13:01:09
【问题描述】:

只是在我的编程“能力”中遇到问题和“错过”。 我有一个 tableview 控制器,其中包含一些从 json 解析的数据。 当您选择“新闻”时,您将进入包含所有数据的详细信息视图。

一切正常,但我会添加一个“检查”,如果您已登录或未登录。 如果不是,您将被“重定向”到登录屏幕。

我尝试使用 segue(模态)来做到这一点。它正在工作,但是当我这样做时,我的“导航”就坏了,就像他“迷失”了他的道路一样。

我尝试像这样以编程方式进行:

LoginViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
[self.navigationController pushViewController:controller animated:YES];

但是当我这样做时,什么都没有发生,我的“详细视图控制器”加载而无需重定向

得到了那个日志:

嵌套推送动画可能导致导航栏损坏 在意外状态下进行导航转换。导航栏 子视图树可能会损坏。

有人给我提示吗? 谢谢

【问题讨论】:

    标签: ios iphone objective-c navigation segue


    【解决方案1】:

    你做错了。你需要学习非常基础的顺序编程(故事板)。 follow this link

    LoginViewController *controller = [self.storyboard   instantiateViewControllerWithIdentifier:@"LoginViewController"];
    [self.navigationController pushViewController:controller animated:YES];
    

    在情节提要中,您已经有一个 push segue,并且您再次在推动 loginviewcontroller。这就是您收到“嵌套推送动画”警告的原因。

    【讨论】:

      【解决方案2】:

      这不是正常的做法。您通常会以模态方式呈现该登录视图控制器。

      如果这正是您想要的方式,您可以使用以下步骤:

      1) 将您的 DetailViewController 连接到您的 TableViewController(不是从单元格本身,而是从代表底部黑条上的 ViewController 的那个黄色图标)。如果愿意,请选择 push 并将标识符添加到该 Segue(例如,“DetailSegue”)

      2) 将 LoginViewController 连接到 TableViewController,就像连接 DetailViewController 并将标识符添加到该 segue(例如,“LoginSegue”)。

      现在,当用户单击某个单元格时,您希望检查会话是否仍然处于活动状态,如果是,您将执行[self performSegueWithIdentifier:@"DetailSegue" sender:self];,如果不是,您将执行[self performSegueWithIdentifier:@"LoginSegue" sender:self];

      希望这会有所帮助,干杯。

      【讨论】:

      • 谢谢我成功了!只需看看为什么我的状态栏在“详细视图”上消失但似乎很容易/很容易做到。谢谢
      【解决方案3】:

      很难理解你想做什么,问题不太清楚。

      如果您想链接到情节提要中的场景,请通过 ctrl + 单击并从初始场景拖动创建一个转场,然后给转场一个 ID(通过单击转场并使用检查器来执行此操作设置一个ID)

      然后在您的 tableview 控制器中,无论您在哪里拿起标签(假设这是在 tableview 委托方法中),您都可以通过编程方式调用 segue

      - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
      [self performSegueWithIdentifier:@"YOURSEGUEID" sender:self];
      }
      

      【讨论】:

      • 谢谢,我做了类似的事情
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-03
      • 1970-01-01
      • 2020-03-27
      相关资源
      最近更新 更多