从应用程序委托调用UIViewController方法
我知道有这个问题的重复,但我的情况是不同的。
当用户回到主页(void)applicationDidEnterBackground
被AppDelegate
类调用。 但是,一旦用户按Home键,我不希望用户再次看到这个视图控制器,所以我有一个名为(void)goToBeginning
切换到另一个视图控制器的方法。 我想能够从AppDelegate调用此方法。 我真的不想使用NotificationCenter
。 另外挑选的解决scheme在这里: 从应用程序委托调用视图控制器方法不起作用,因为它初始化新的对象,而我想能够调用已经在视图中的对象。 我怎样才能做到这一点? 我正在使用iOS 7和XCode 5。
- 通知。 但是你不想要这个。
- 你可以在
AppDelegate
获得你的viewController
的引用。 在(void)applicationDidEnterBackground
调用(void)goToBeginning
方法
例如:在你的ViewController
- (void)viewDidLoad { [super viewDidLoad]; AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; appDelegate.myViewController = self; }
而在你的AppDelegate
:
@class MyViewController; @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (weak, nonatomic) MyViewController *myViewController; @end
而在AppDelegate
的实现中:
- (void)applicationDidEnterBackground:(UIApplication *)application { [self.myViewController goToBeginning]; }
- 如何从AppDelegate中移动这些stream程,并从每个Call中设置个别代理?
- 本地通知
- 从UIViewController更改AppDelegate的属性不起作用
- 如何使用AppDelegate在视图之间共享iAd横幅
- 用接口控制器重复架构x86_64的符号
- 如何在没有用户交互的情况下在后台接收iOS通知
- 简单的Webview:navigationDelegate开始崩溃
- 改变本地,phonegap /cordova内置的iOS应用程序的键盘外观
- Swift – 从appDelegate的pushViewController,rootViewController.navigationController是零