首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将数据发送到RootViewController

如何将数据发送到RootViewController
EN

Stack Overflow用户
提问于 2013-09-10 15:10:03
回答 5查看 2.3K关注 0票数 3

这就是我的问题:

我有一个在NavigationController中嵌入了UIViewController的基本应用程序。它也是应用程序的RootViewController。从那里我有一个推送段到一个普通的UIViewController,第二个推送段到一个有自己的详细视图UIViewControllerUITableViewController

在根视图中,有一个类的实例,它的目的是使用定义的协议发送消息。在表视图中,用户将选择他想要发送的消息类型,而在详细视图中,用户将选择该特定类型消息的内容。

现在用户已经指定了所有内容,我希望他按下"send“按钮。该按钮必须做两件事:弹回根视图并通过协议类实例发送用户定义的消息。我可以用以下命令很好地完成弹出:

代码语言:javascript
运行
复制
[self.navigationController popToRootViewControllerAnimated:true];

但是我不知道如何将消息(类实例)发送回根视图。应用程序仍然是新鲜的,所以如果这个不正确,我可以完全改变结构。

对我来说,最好的方法是从任何地方访问协议类实例(我需要在另一个UIViewController中使用它),但我不确定如何做到这一点,这就是为什么我考虑将消息发送回根视图的原因。

如果你知道如何做上面两个中的一个,请帮我一把!

干杯。

编辑:从技术上讲,NavigationController是初始的ViewController,所以我不再确定谁是RootViewController

EN

回答 5

Stack Overflow用户

发布于 2013-09-10 15:31:53

首先:你可以这样做:(仅当你的视图被添加到窗口时才起作用)

代码语言:javascript
运行
复制
[self.view.window.rootviewcontroller doSomething];

第二种选择是在appDelegate上定义一个属性:

代码语言:javascript
运行
复制
@property (nonatomic, strong) UIViewController *root;

并通过以下方式调用:

代码语言:javascript
运行
复制
AppDelegate *appDelegate= (YourAppDelegateClass *) [[UIApplication sharedApplication] delegate];

[appDelegate.root doSomething];
票数 4
EN

Stack Overflow用户

发布于 2013-09-10 15:31:58

您可以创建应用程序对象并将消息分配给它。并在根视图控制器上使用它。如果我没理解错你的问题,这可能会有帮助。

票数 1
EN

Stack Overflow用户

发布于 2013-09-10 15:37:54

您可以尝试:

代码语言:javascript
运行
复制
UIApplication *myApp = [UIApplication sharedApplication];
UIWindow *frontWindow = [myApp.windows lastObject];
UIViewController *myRootViewController = frontWindow.rootViewController;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18712635

复制
相关文章

相似问题

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