【问题标题】:When redirecting back to home screen, buttons don't work and nav pane doesn't show重定向回主屏幕时,按钮不起作用且导航窗格不显示
【发布时间】:2023-03-23 10:42:01
【问题描述】:

我有一个登录屏幕,成功登录后会重定向到主页。

我这样重定向:

ViewController *viewController = [[UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil] instantiateViewControllerWithIdentifier:@"main"];

[self presentModalViewController:viewController animated:YES];

重定向发生,主屏幕加载,但其上的按钮不再响应点击,导航区域丢失。

我正在使用 push segues。

有人知道为什么会发生这种事情吗?另外,现在我正在使用 push seguey,但我应该使用模态 seguey 吗?

我的功能是:在一个屏幕上做一些逻辑,转到下一个屏幕。

【问题讨论】:

  • 这会创建一个 ViewController。当您说“重定向”时,您确定这是您的意图吗?
  • @PhillipMills 也许我没有在代码中做我真正想要的。我真的只是想交换屏幕,就像在网站中一样,当用户点击一个链接时,该网站会将他们带到一个新页面。我将如何做到这一点?谢谢!
  • 在您登录之前屏幕上是否有任何内容...如果有,是什么?是什么将登录信息显示在屏幕上...初始控制器、segue、代码?
  • @PhillipMills 用户单击按钮进入登录屏幕。这是一个转场。一旦他们填写了登录表单,一切正常,我需要将他们发送到主屏幕。这有助于解释它吗?
  • 对,所以如果你的 segue 是 'push' 类型,你应该在导航控制器上使用popViewControllerAnimated: 来移除它。如果它是模态的,那么你应该看看dismissViewControllerAnimated:

标签: ios ios5


【解决方案1】:

首先,我会以不同的方式创建整个“重定向”。在 IB 中,选择登录视图控制器并将其拖到主屏幕视图控制器并选择推送。选择 segue 并添加标识符并将重定向方法替换为
[self performSegueWithIdentifier:@"IB 中设置的标识符" sender:self];

【讨论】:

    【解决方案2】:

    您需要更好地了解 UINavigationController 的工作原理。按钮不起作用的原因是您将它们放在 UINav 控制器本身而不是与视图关联的“隐含”工具栏上。

    UINavigationController 将其控件替换为推送视图的控件。如果你将控件直接放在 UINav 控制器上,你的 viewController 将不会得到相关的消息。

    UINavigationController 是一个视图容器。进入 IB 并将您的按钮放在视图继承工具栏的工具栏上,它将起作用。

    【讨论】:

      【解决方案3】:

      这实际上也发生在我身上。就我而言,发生的事情是,属性检查器中有一个名为Initial View 的选项。保留它,以便仅针对 UINavigation 控制器本身检查该选项。

      试试看。如果它不起作用,对不起:/

      编辑:这是question 我不久前发布的赏金,它详细说明了同样的问题。查看答案。

      【讨论】:

        【解决方案4】:

        你确定视图有它的 userInteractionEnabled 吗?

        [self.view setUserInteractionEnabled:YES];
        

        【讨论】:

          猜你喜欢
          • 2019-09-19
          • 2017-09-26
          • 2020-08-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多