Я пытаюсь программно активировать кнопку на 2-й вкладке (secondViewController), чтобы напечатать эту консоль: «2nd View Button Press». Проблема в том, что я пытаюсь сделать это, нажав кнопку на первой вкладке контроллера панели вкладок, и делаю это перед загрузкой контроллера второго представления. Я создал этот проект панели вкладок, используя стандартный шаблон «Приложение с вкладками» при выборе нового проекта в XCode. Таким образом, панель вкладок создается с раскадровкой.
Я отправляю данные с первой вкладки на вторую, используя NSNotification. Это хорошо работает, если вторая вкладка выбрана и загружена. Он будет печататься при нажатии кнопки на первом контроллере представления вкладок. Проблема, которую я пытаюсь решить, состоит в том, чтобы сделать это, когда приложение запускается, прежде чем выбрать 2-ю вкладку. Я хотел бы программно загрузить 2-й контроллер представления панели вкладок перед его выбором.
FirstViewController
#import "FirstViewController.h"
#import "SecondViewController.h"
@interface FirstViewController ()
@property (weak, nonatomic) IBOutlet UIButton *firstButton;
@end
@implementation FirstViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (IBAction)firstButtonPress:(id)sender {
[[NSNotificationCenter defaultCenter] postNotificationName:@"activateSecondViewButton" object:self];
}
@end
SecondViewController
#import "SecondViewController.h"
@interface SecondViewController ()
@property (weak, nonatomic) IBOutlet UIButton *secondViewButton;
@end
@implementation SecondViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNotification:) name:@"activateSecondViewButton" object:nil];
if(!self)
{
return nil;
}
return self;
}
-(void) receiveNotification:(NSNotification *) notification
{
if ([[notification name] isEqualToString:@"activateSecondViewButton"] )
{
[_secondViewButton sendActionsForControlEvents: UIControlEventTouchUpInside];
}
}
- (IBAction)secondViewButtonPress:(id)sender {
NSLog(@"2nd View Button Press");
}
@end
Я хотел бы видеть, когда приложение впервые загружается для отображения на консоли «2nd View Button Press», нажав первую кнопку на первом контроллере представления. Я хотел бы увидеть это перед выбором и загрузкой контроллера второго вида и хотел бы программно загрузить контроллер второго вида, не выбирая его при загрузке приложения, чтобы при нажатии первой кнопки отображалось «Нажатие кнопки 2-го вида» в консоль.