从应用程序委托调用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
- iOS中的UILocalNotification中不显示动作和类别
- 如何在没有用户交互的情况下在后台接收iOS通知
- 如何使用故事板呈现飞溅/login视图控制器
- NSInternalInconsistencyException',原因:'无法在捆绑中加载NIB:'NSBundle
- 在ios8中使用appdelegate暂停spritekit游戏
- 从AppDelegate显示两个ViewController
- AppDelegate和ViewController类的iOS区别
- UIApplicationLaunchOptionsLocalNotificationKey始终为空 – iOS