从一个viewController导航到另一个

时间:2014-04-14 08:33:19

标签: ios objective-c navigation

我的应用程序中有一个与导航相关的问题。我的应用程序包含初始配置VC,然后是loginVC以及登录landingVC之后。在应用程序中的任何位置登录后,用户遇到类似“无效ID”的条件我需要将他带回配置控制器。我通过保持一个从配置VC开始然后使用popToRootViewController的通用导航控制器来处理这个问题。遇到'无效身份'。但是在登陆VC时,我在另一个导航控制器中打开了一个leaveVC。我这样做是因为我需要在登陆页面上以formSheet方式模式化呈现LeaveVC。所以如果我做popToRootViewController我不会直接导航到configurationVC。在这种情况下,我该怎么做才能直接获得配置屏幕。 我搜索了一些链接,但无法获得adzact解决方案。请帮助,因为我是iOS的新手

2 个答案:

答案 0 :(得分:0)

您可以将配置和登录设置为单独的导航控制器。 什么时候你想要ConfigurationVC将应用程序窗口rootViewController更改为ConfigurationVC。

答案 1 :(得分:0)

您可以通过本地通知进行操作。在LoginVC上,您可以注册本地通知。当您解雇leaveVC时,您可以从其完成处理程序发布通知。这将调用在LoginVC中编写的函数,您可以在其中访问公共导航控制器。使用该通用导航控制器,您可以删除整个层次结构。

在LoginVC中,在viewDidLoad中,编写以下代码,

[[NSNotificationCenter defaultCenter]addObserver:self
                                         selector:@selector(removeHierarchy)
                                             name:@"RemoveHierachy"
                                           object:nil];

在LoginVC中,在dealloc方法中编写以下代码,

[[NSNotificationCenter defaultCenter]removeObserver:self;

在LeaveVC中,您可以取消控制器(可能在完成处理程序中),

  [[NSNotificationCenter defaultCenter] postNotificationName:@"RemoveHierachy" object:nil];