2013-05-04 2 views
1

У меня есть следующий лист UIActionSheet. Как добавить его в свою верхнюю панель навигации? Предпочтительно, как крайняя правая кнопка.MonoTouch - добавление таблицы UIActionSheet в верхнюю панель навигации моего ViewController

var sheet = new UIActionSheet (""); 
      sheet.AddButton ("Discard Picture"); 
      sheet.AddButton ("Pick New Picture"); 
      sheet.AddButton ("Cancel"); 
      sheet.CancelButtonIndex = 2; 

      // Dummy buttons to preserve the space for the UIImageView 
      for (int i = 0; i < 4; i++) { 
       sheet.AddButton(""); 
       sheet.Subviews[i+4].Alpha = 0; // And of course it's better to hide them 
      } 

      var subView = new UIImageView(); 
      subView.ContentMode = UIViewContentMode.ScaleAspectFill; 
      subView.Frame = new RectangleF(23,185,275,210); 

      // Late Steve Jobs loved rounded corners. Let's have some respect for him 
      subView.Layer.CornerRadius = 10; 
      subView.Layer.MasksToBounds = true; 
      subView.Layer.BorderColor = UIColor.Black.CGColor; 
      sheet.AddSubview(subView); 

      NavigationController.Add(sheet); 

ответ

2

Вы можете показать ActionSheet с помощью ShowFrom методов.

В частности, ShowFromToolbar показывает лист с верхней кнопки панели инструментов.

Вот пример, который показывает лист по-разному в зависимости от того, являются ли вы на таблетки или телефон:

void ActionMenu() 
    { 
     //_actionSheet = new UIActionSheet(""); 
     UIActionSheet actionSheet = new UIActionSheet (
      "Customer Actions", 
      null, 
      "Cancel", 
      "Delete Customer", 
      new string[] {"Change Customer"}); 

     actionSheet.Style = UIActionSheetStyle.Default; 
     actionSheet.Clicked += delegate(object sender, UIButtonEventArgs args) { 
      switch (args.ButtonIndex) 
      { 
       case 0: DeleteCustomer(); break; 
       case 1: ChangeCustomer(); break; 
      } 
     }; 

     if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone) 
      actionSheet.ShowFromToolbar(NavigationController.Toolbar); 
     else 
      actionSheet.ShowFrom(NavigationItem.RightBarButtonItem, true); 
    } 

https://github.com/slodge/MvvmCross-Tutorials/blob/master/Sample%20-%20CustomerManagement/CustomerManagement/CustomerManagement.Touch/Views/CustomerView.cs#L67

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