BarButtonItem, предоставляемый SplitViewController, является ключом для программного скрытия Master View Controller.
Этот код ОПАСЕН! но элегантно :) 1003 *
импортировать целевую библиотеку сообщений c
#import <objc/message.h>
Затем, получите дескриптор UIBarButtonItem, предоставленного SplitViewController
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem
forPopoverController:(UIPopoverController *)popoverController
{
barButtonItem.title = @"Master";
[self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
//Obtain handle to BarButtonItem
[self setMasterButtonItem:barButtonItem];
}
Затем, когда происходит событие, которое должно вызвать автоматическое отключение главного контроллера представления, т.е.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
Вы можете сделать это
objc_msgSend(self.masterButtonItem.target, self.masterButtonItem.action);