Вызов метода UIViewController из делегата приложения
Я знаю, что есть дубликаты этого вопроса, но моя ситуация здесь другая.
Когда пользователь возвращается домой (void)applicationDidEnterBackground
вызывается из AppDelegate
учебный класс. Однако, как только пользователь нажимает кнопку "Домой", я не хочу, чтобы пользователь снова видел этот контроллер представления, поэтому у меня есть метод с именем (void)goToBeginning
это переключается на другой контроллер представления. Я хочу иметь возможность вызывать этот метод из AppDelegate. Я не очень хочу использовать NotificationCenter
за это. Также здесь выбрано решение: вызов метода контроллера представления из делегата приложения не работает для меня, поскольку он инициализирует новый объект, тогда как я хочу иметь возможность вызывать объект, который уже находится в представлении. Как я могу это сделать? Я использую iOS 7 и XCode 5.
1 ответ
- Уведомление. Но ты не хочешь этого.
- Вы можете получить ссылку на ваш, что
viewController
вAppDelegate
, Чем называть это(void)goToBeginning
метод в(void)applicationDidEnterBackground
Например: в вашем 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];
}