首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ViewController跃迁

ViewController跃迁
EN

Stack Overflow用户
提问于 2014-05-08 07:41:25
回答 1查看 192关注 0票数 0

我正在构建一个使用大量web服务的iOS应用程序。这个应用程序有一个UItabBarController作为它的根VC。

在我的一个控制器中,我将viewController推到UINavigationController上。我正在推到堆栈上的ViewController是一个带有来自web的数据的UITableView的UITableViewController。我在每个级别恢复控制器,用户在数据中下降。然后,在最后一层,我调用一个web服务,然后希望整个UITableViewController被取消,原始视图控制器被显示出来。

这就是它的样子:

ViewControllerA (UIViewController) ->用户点击按钮-推ViewControllerB到它上。(UINavigationController)。

一旦我完成了与ViewControllerB,我需要它被解雇和ViewControllerA显示的结果。

在ViewControllerB中,我在NSNotification方法中这样做:

代码语言:javascript
复制
if ([errorString hasPrefix:@"No descendants"]){
    UINavigationController *navigationController = 
                     [self.tabBarController.viewControllers objectAtIndex:1];
    BBSearchViewController *searchViewController = 
                     navigationController.viewControllers[0];
    searchViewController.categoryId = self.categoryId;


    if (searchViewController.brwosingCategoriesFromSearchPage){
        [[BBDataStore sharedDataStore]deRegisterForNotifications:self];
        [self.navigationController popToRootViewControllerAnimated:NO];

这将导致控制台中的此错误:

代码语言:javascript
复制
> 2014-05-08 09:32:16.306 TestApp[36948:60b] Finishing up a navigation transition 
in an unexpected state. Navigation Bar subview tree might get corrupted.

 2014-05-08 09:32:16.780 TestApp[36948:60b] Unbalanced calls to begin/end 
appearance transitions for <ViewControllerA: 0xd08aa00>.

有人能告诉我我在这里做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-08 08:59:00

您得到这些错误是因为您正在尝试一个转换之前,另一个已经完成。在您的例子中,您似乎在视图出现之前收到通知,然后尝试弹出到根。您应该使用用户输入(当用户点击按钮时)或至少在popToRootViewControllerAnimated:之后调用viewDidAppear:

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

https://stackoverflow.com/questions/23535663

复制
相关文章

相似问题

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