【问题标题】:"Unbalanced calls to begin/end appearance transitions"?“开始/结束外观转换的不平衡呼叫”?
【发布时间】:2013-08-06 00:41:37
【问题描述】:

这似乎是一个愚蠢的问题,但我似乎无法解决它。

我的用户点击应用主屏幕上的一个图标,该图标执行模态转场,打开一个视图。从这里,用户可以单击另一个按钮,将他们推到详细视图。这是踢球者:一旦我的用户进入详细视图并尝试单击另一个按钮,我就会收到错误消息:

“开始/结束外观转换的不平衡调用。”

我假设这是由于原始模态之上分层的 segue 数量所致。简而言之,流程就是:Modal,Push,Push。在第三次推送中,上述“错误”出现在控制台中。

我该如何解决这个问题?这是发生错误的segue/代码:

.m

- (IBAction)purchasebuttonpressed:(id)sender
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_1" bundle:nil];
    StrainDetailViewController *yourViewController = (StrainDetailViewController *)[storyboard instantiateViewControllerWithIdentifier:@"DispensaryViewController"];

    [self.navigationController pushViewController:yourViewController animated:YES];



}

【问题讨论】:

  • 您是否还为动作方法为 purchasebuttonpressed: 的按钮附加了一个 segue?您称其为 segue,但随后您进行了手动推送。
  • 对不起,不是转场。只是一推。此代码存在于我的 XIB 文件中(它是一个 DetailView)。该按钮正在“推送”到我的 StoryBoard 上的视图。
  • 导航控制器在控制器层次结构中的什么位置?
  • 导航控制器附加到主屏幕(homeviewcontroller)。层次结构是:NavigationController > HomeViewController (push) > ViewController (modal) > TableViewController (push) > DetailViewController (Button Lives Here, and push it会在控制台中显示该消息)。
  • 我有点不确定你的结构,但我认为问题在于你的导航控制器在哪里。当您呈现模态视图控制器时,我认为您应该呈现一个导航控制器,并将 ViewController 作为其根视图控制器。

标签: objective-c uiview xcode4.5 uistoryboardsegue


【解决方案1】:

如果我了解您的应用程序结构以及您想要做什么,我认为您需要将控制器的排列更改为:

HomeViewController (the window's root view controller)
     |
     | modal segue to:
     |
NavigationController whose root view controller is ViewController
     |
     | push to :
     |
TableViewController
     |
     | push to:
     |
DetailViewController

另一种实现方式,如果 HomeViewController 类似于启动屏幕或欢迎屏幕,我更喜欢这种方式 - 您第一次看到它后不需要返回的方式是使导航控制器成为窗口的根视图控制器。在导航控制器的根视图控制器(在您的情况下为 ViewController)中,从 viewDidAppear 方法以模态方式呈现 HomeViewController,没有动画,因此它将是用户看到的第一件事。当用户想要继续前进时,关闭 HomeViewController,您将在 ViewController 中,并且 HomeViewController 将被释放。您需要将逻辑放入该 viewDidAppear 方法中,以便 HomeViewController 的呈现仅在第一次调用 viewDidAppear 时发生。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多