0

У меня есть проблемы с UISplitviewcontroller,не работает UISplitViewController - не WillHideViewController называется в MonoTouch

Когда я создаю splitviewcontroller (первый раз) показывает barbutton и она отлично работает,

После выбора строки таблицы в мастере, его удалить detailview1 & добавить detailview2, теперь баркарт не показан. если я поверну IPad barbutton будет показано,

Я не знаю, почему изначально не показывать кнопку бара. Я установил делегат, даже его не показал баркарт.

Это код, который я использовал:

 UINavigationController navMaster = appDel.SplitView.ViewControllers [0] as UINavigationController; 

     if (indexPath.Row == 0) 
     { 
      ViewController1 View1 = new ViewController1(); 
      UINavigationController nav1 = new UINavigationController (View1); 
      appDel.SplitView.WeakDelegate = View1;    
      appDel.SplitView.ViewControllers = new UIViewController[]{ navMaster, nav1 }; 
     } 
     else if (indexPath.Row == 1) 
     { 
      ViewController2 View2 = new ViewController2(); 
      UINavigationController nav2 = new UINavigationController (View2); 
      appDel.SplitView.WeakDelegate = View2;    
      appDel.SplitView.ViewControllers = new UIViewController[]{ navMaster, nav2 }; 
     } 

Это делегат установить в detailviewcontroller1 и detailviewcontroller2.

[Export("splitViewController:willHideViewController:withBarButtonItem:forPopoverController:")] 
     public void WillHideViewController (UISplitViewController splitController, UIViewController viewController, UIBarButtonItem barButtonItem, UIPopoverController popoverController) 
     { 
      barButtonItem.Title = "Inputs"; 
      NavigationItem.SetLeftBarButtonItem (barButtonItem, true); 
      masterPopoverController = popoverController; 
     } 

    [Export("splitViewController:willShowViewController:invalidatingBarButtonItem:")] 
    public void WillShowViewController (UISplitViewController svc, UIViewController vc, UIBarButtonItem button) 
    { 
     NavigationItem.SetLeftBarButtonItem (null, true); 
     masterPopoverController = null; 
    } 

Может ли кто-нибудь мне помочь?

ответ

2

WillHideViewController не будет вызываться в вашем примере, потому что вы установили свойство WeakDelegate до отображения нового контроллера. Если вы изменили порядок этих двух утверждений, у вас возникнет аналогичная проблема, и WillShowViewController не будет вызываться.

Есть ли способ, которым вы можете обрабатывать делегат с разделенным видом из одного класса? Обычно я обрабатываю этот делегат в подклассе UISplitViewController и устанавливаю только WeakDelegate.

+0

Привет, спасибо за ваш повтор. Я создаю делегат и устанавливаю в UISplitViewController, но до сих пор я не получаю barbutton, прежде чем я получу barbutton, если я поверну iPad, теперь после поворота его не покажет barbutton. Я считаю, что делегат неправильно настроен. у вас есть выбор делегата – Ramesh

+0

. Вот один из них: https://github.com/xamarin/monotouch-samples/tree/master/SplitView – jonathanpeppers

 Смежные вопросы

  • Нет связанных вопросов^_^