Как вызвать метод делегата контроллера splitview вручную? - PullRequest
1 голос
/ 08 октября 2011

Я использую SplitviewController в приложении на основе вкладок, сначала я нажимаю на настройку (с помощью Splitviewcontroller), затем вызывается метод делегирования контроллера splitview, но когда я нажимаю на другую вкладку после этого, меняю ориентацию и затем снова открываю настройки (с splitviewcontroller)тогда метод делегата splitviewcontroller не вызывается .......

Я знаю, что в это время вызывается только метод viewWillAppear, но я хочу вызвать метод делегата splitViewcontroller в то время ... Скажите, пожалуйста, какчтобы вызвать метод делегата splitviewController в то время.

Заранее спасибо ..... Пожалуйста, помогите мне ....

в контроллере masterview

- (void)splitViewController:(UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController:(UIPopoverController*)pc {

    // Keep references to the popover controller and the popover button, and tell the detail view controller to show the button.
    barButtonItem.title = @"Settings";
    self.popoverController = pc;
    self.rootPopoverButtonItem = barButtonItem;
UINavigationController *nav = [self.splitViewController.viewControllers objectAtIndex:1];
UIViewController <SubstitutableDetailViewController> *detailViewController = [nav.viewControllers objectAtIndex:0];
    [detailViewController showRootPopoverButtonItem:rootPopoverButtonItem]; 
}

- (void)splitViewController:(UISplitViewController*)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem {

UINavigationController *nav = [self.splitViewController.viewControllers objectAtIndex:1];
    UIViewController <SubstitutableDetailViewController> *detailViewController = [nav.viewControllers objectAtIndex:0];
    [detailViewController invalidateRootPopoverButtonItem:rootPopoverButtonItem];
    self.popoverController = nil;
    self.rootPopoverButtonItem = nil;
}

подробнопросмотр

- (void)showRootPopoverButtonItem:(UIBarButtonItem *)barButtonItem {
// Add the popover button to the left navigation item.
[self.navigationController.navigationBar.topItem setLeftBarButtonItem:barButtonItem animated:NO];
}

- (void)invalidateRootPopoverButtonItem:(UIBarButtonItem *)barButtonItem {
// Remove the popover button.
[self.navigationController.navigationBar.topItem setLeftBarButtonItem:nil animated:NO];
}
...