首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从SDK返回应用程序

从SDK返回应用程序
EN

Stack Overflow用户
提问于 2016-02-01 06:54:52
回答 2查看 62关注 0票数 0

我已经创建了一个框架工作,其中包含3个视图控制器。

用户应用程序视图名称

代码语言:javascript
运行
复制
userViewController
      |
      clickherebtn      to load Framework

框架评估:

代码语言:javascript
运行
复制
sdkview1controller
sdkview2controller
sdkview3controller

应用程序对框架流的调用

在点击hit时,我加载了类似于这个辅导方式的框架

从sdkview1controller视图返回

代码语言:javascript
运行
复制
    [self dismissViewControllerAnimated:NO completion:nil];

但是如果我的调用视图是

userViewController -> sdkview3controller 1控制器->sdkview2控制器->sdkview3controller

现在,我想跳回userViewController,在sdkview3controller中按回按钮

注意: userViewController的名称不是固定的,所以我的问题是如何回到app视图,直接跳过框架中所有加载的视图?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-01 06:58:39

代码语言:javascript
运行
复制
UIViewController *vc = self.presentingViewController;
NSArray* classes = @[[sdkview1controller class],
[sdkview2controller class],
[sdkview3controller class]];

while (vc.presentingViewController) {
     vc = vc.presentingViewController;

   if(! [classes containsObject:[vc class]])
         break;
}
[vc dismissViewControllerAnimated:YES completion:NULL];

如果您使用presentViewController:添加了所有视图控制器(我假设您添加了),这将消除所有的链接,并使用户返回到userViewController

票数 1
EN

Stack Overflow用户

发布于 2016-02-01 07:40:25

在您的应用程序中添加一个导航控制器作为rootviewcontroller,并按以下方式推送框架视图控制器:

代码语言:javascript
运行
复制
 Common *com_obj = [Common sharedInstance];
  com_obj.viewc =self; ////////assiging the app viewcontroller which will be used to pop
 NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"CommonBundle" ofType:@"bundle"];
NSBundle *mobtestBundle = [NSBundle bundleWithPath:bundlePath];

UIStoryboard *story=[UIStoryboard storyboardWithName:@"Main" bundle:mobtestBundle];
ViewController1 *viewc1=[story instantiateViewControllerWithIdentifier:@"ViewController1"];
[self.navigationController pushViewController:viewc1 animated:YES];

sdk中的

在object类中,将属性添加为id viewc。

代码语言:javascript
运行
复制
/////in sdkViewcontroller1 push as 

ViewController2 *viewc1=[self.storyboard instantiateViewControllerWithIdentifier:@"ViewController2"];

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

在后面的sdkViewcontroller2

代码语言:javascript
运行
复制
Common *common = [Common sharedInstance];
[self.navigationController popToViewController:common.viewc animated:YES];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35124568

复制
相关文章

相似问题

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