这就是我的问题:
我有一个在NavigationController中嵌入了UIViewController的基本应用程序。它也是应用程序的RootViewController。从那里我有一个推送段到一个普通的UIViewController,第二个推送段到一个有自己的详细视图UIViewController的UITableViewController。
在根视图中,有一个类的实例,它的目的是使用定义的协议发送消息。在表视图中,用户将选择他想要发送的消息类型,而在详细视图中,用户将选择该特定类型消息的内容。
现在用户已经指定了所有内容,我希望他按下"send“按钮。该按钮必须做两件事:弹回根视图并通过协议类实例发送用户定义的消息。我可以用以下命令很好地完成弹出:
[self.navigationController popToRootViewControllerAnimated:true];但是我不知道如何将消息(类实例)发送回根视图。应用程序仍然是新鲜的,所以如果这个不正确,我可以完全改变结构。
对我来说,最好的方法是从任何地方访问协议类实例(我需要在另一个UIViewController中使用它),但我不确定如何做到这一点,这就是为什么我考虑将消息发送回根视图的原因。
如果你知道如何做上面两个中的一个,请帮我一把!
干杯。
编辑:从技术上讲,NavigationController是初始的ViewController,所以我不再确定谁是RootViewController。
发布于 2013-09-10 15:31:53
首先:你可以这样做:(仅当你的视图被添加到窗口时才起作用)
[self.view.window.rootviewcontroller doSomething];第二种选择是在appDelegate上定义一个属性:
@property (nonatomic, strong) UIViewController *root;并通过以下方式调用:
AppDelegate *appDelegate= (YourAppDelegateClass *) [[UIApplication sharedApplication] delegate];
[appDelegate.root doSomething];发布于 2013-09-10 15:31:58
您可以创建应用程序对象并将消息分配给它。并在根视图控制器上使用它。如果我没理解错你的问题,这可能会有帮助。
发布于 2013-09-10 15:37:54
您可以尝试:
UIApplication *myApp = [UIApplication sharedApplication];
UIWindow *frontWindow = [myApp.windows lastObject];
UIViewController *myRootViewController = frontWindow.rootViewController;https://stackoverflow.com/questions/18712635
复制相似问题