void Initialize()
        {
            _timingItemManager = null;//  new TimingItemManager () { Race = new Race() { Name = _details.Race, Code = _details.Race}, Location =  _details.Location, Token = _details.OurLittleSecret};

            _popover = new SettingsDialogViewController (_details.Location, _details.OurLittleSecret);
            UIPopoverController myPopOver = new UIPopoverController(_popover);
            _popover.Changed += () =>
            {
                _details.Location = _popover.Location;
                _details.OurLittleSecret = _popover.Secret;
            //				_timingItemManager = new TimingItemManager () { Race = new Race() { Name = _details.Race, Code = _details.Race}, Location =  _details.Location, Token = _details.OurLittleSecret};
                PopulateTable(true);
            };
            _popover.Clear += () =>
            {
                // _timingItemManager.Reset();
                _details.Reset();
                PopulateTable(false);
            };
            _popover.Save += () => {
            //				_timingItemManager.SaveItem (null);
                _popover.UpdateStatus(_timingItemManager.Status);
            };

            NavigationItem.RightBarButtonItem = new UIBarButtonItem("Settings", UIBarButtonItemStyle.Plain, null);
            NavigationItem.RightBarButtonItem.Clicked += (sender, e) => { myPopOver.PopoverContentSize = new SizeF(450f, 800f);
                myPopOver.PresentFromBarButtonItem (NavigationItem.RightBarButtonItem, UIPopoverArrowDirection.Left, true); };
            PopulateTable (true);
        }
        public override void WillShowViewController(UISplitViewController svc, UIViewController aViewController, UIBarButtonItem button)
        {
            _pc = null;
            _lefty = null;

            ReplaceDetailNavigationViewController();
        }
示例#3
0
		public MainSplitView () : base()
		{
			// create our master and detail views
			masterView = new Screens.iPad.NavTable.MasterNavTableViewController ();
			detailView = new Screens.iPad.BasicUIViewAnimation.BasicUIViewAnimationScreen ();

			// create an array of controllers from them and then assign it to the 
			// controllers property
			this.ViewControllers = new UIViewController[] {  masterView,  detailView };
			
			// in this example, i expose an event on the master view called RowClicked, and i listen 
			// for it in here, and then call a method on the detail view to update. this class thereby 
			// becomes the defacto controller for the screen (both views).
			 masterView.RowClicked += (object sender, RowClickedEventArgs e) => {
				this.HandleRowClicked (e);
			};
			
			// when the master view controller is hid (portrait mode), we add a button to 
			// the detail view that when clicked will show the master view in a popover controller
			this.WillHideViewController += (object sender, UISplitViewHideEventArgs e) => {
				popoverController = e.Pc;
				rootPopoverButtonItem = e.BarButtonItem;
				(detailView as IDetailView).AddContentsButton (rootPopoverButtonItem);
			};

			// when the master view controller is shown (landscape mode), remove the button
			// since the controller is shown.
			this.WillShowViewController += (object sender, UISplitViewShowEventArgs e) => {
				(detailView as IDetailView).RemoveContentsButton ();
				popoverController = null;
				rootPopoverButtonItem = null;
			};
		}
        protected override void OnElementChanged (Xamarin.Forms.Platform.iOS.ElementChangedEventArgs<Xamarin.Forms.Button> e)
        {
            base.OnElementChanged (e);

            if (e.NewElement != null) {
                Control.TouchUpInside += delegate(object sender, EventArgs e2) {

                    var formsView = new CommonFormsView ();

                    var rect = new CGRect (0, 0, 400, 400);
                    var iOSView = FormsViewToNativeiOS.ConvertFormsToNative (formsView, rect);

                    var viewController = new UIViewController();
                    viewController.Add(iOSView);
                    viewController.View.Frame = rect;

                    var popoverController = new UIPopoverController(viewController);
                    popoverController.ContentViewController.View.BackgroundColor = viewController.View.BackgroundColor;
                    popoverController.PopoverContentSize = rect.Size;
                    var frame = UIApplication.SharedApplication.KeyWindow.RootViewController.View.Frame;
                    popoverController.PresentFromRect (Control.Frame, UIApplication.SharedApplication.KeyWindow.RootViewController.View, 0, true);

                };
            }
        }
		partial void showInfo (NSObject sender)
		{
			if (UserInterfaceIdiomIsPhone) {
				var controller = new FlipsideViewController () {
					ModalTransitionStyle = UIModalTransitionStyle.FlipHorizontal,
				};
				
				controller.Done += delegate {
					this.DismissModalViewControllerAnimated (true);
				};
				
				this.PresentModalViewController (controller, true);
			} else {
				if (flipsidePopoverController == null) {
					var controller = new FlipsideViewController ();
					flipsidePopoverController = new UIPopoverController (controller);
					controller.Done += delegate {
						flipsidePopoverController.Dismiss (true);
					};
				}
				
				if (flipsidePopoverController.PopoverVisible) {
					flipsidePopoverController.Dismiss (true);
				} else {
					flipsidePopoverController.PresentFromBarButtonItem ((UIBarButtonItem)sender, UIPopoverArrowDirection.Any, true);
				}
			}
		}
示例#6
0
        public NumberEntryView()
        {
            BackgroundColor = UIColor.White;
            BorderStyle = UITextBorderStyle.RoundedRect;
            this.KeyboardType = UIKeyboardType.DecimalPad;
            this.ShouldBeginEditing = (t) =>{
                if(UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone || popover != null && popover.PopoverVisible)
                    return true;
                var num = new NumberInputViewController(this);
                popover = new UIPopoverController(num){

                };
                popover.PresentFromRect(this.Frame,this.Superview, UIPopoverArrowDirection.Any,true);
                popover.DidDismiss += (object sender, EventArgs e) => {
                    this.ResignFirstResponder();
                    popover.Dispose();
                    num.Dispose();
                    popover = null;
                };

                this.SelectAll(this);
                return true;
            };
            this.EditingDidEnd += (s,e) => {
                if(NewValue != null)
                    NewValue(Text);
                if(popover != null && popover.PopoverVisible)
                    popover.Dismiss(true);
            };
            this.InputView = new UIView (new RectangleF (0, 0, 0, 0));
        }
        public Task SaveAndLaunchFile(Stream stream, string fileType)
        {
            if (OriginView == null) return Task.FromResult(true);

            var data = NSData.FromStream(stream);
            var width = 824;
            var height = 668;

            var popoverView = new UIView(new RectangleF(0, 0, width, height));
            popoverView.BackgroundColor = UIColor.White;
            var webView = new UIWebView();
            webView.Frame = new RectangleF(0, 45, width, height - 45);

            var b = new UIButton(UIButtonType.RoundedRect);
            b.SetTitle("Done", UIControlState.Normal);
            b.Frame = new RectangleF(10,10, 60, 25);
            b.TouchUpInside += (o, e) => _popoverController.Dismiss(true);

            popoverView.AddSubview(b);
            popoverView.AddSubview(webView);

            var bundlePath = NSBundle.MainBundle.BundlePath;
            System.Diagnostics.Debug.WriteLine(bundlePath);
            webView.LoadData(data, "application/pdf", "utf-8", NSUrl.FromString("http://google.com"));

            var popoverContent = new UIViewController();
            popoverContent.View = popoverView;

            _popoverController = new UIPopoverController(popoverContent);
            _popoverController.PopoverContentSize = new SizeF(width, height);
            _popoverController.PresentFromRect(new RectangleF(OriginView.Frame.Width/2, 50, 1, 1), OriginView, UIPopoverArrowDirection.Any, true);
            _popoverController.DidDismiss += (o, e) => _popoverController = null;

            return Task.FromResult(true);
        }
示例#8
0
        public void ShareUrl(object sender, Uri uri)
        {
            var item = new NSUrl(uri.AbsoluteUri);
            var activityItems = new NSObject[] { item };
            UIActivity[] applicationActivities = null;
            var activityController = new UIActivityViewController (activityItems, applicationActivities);

            if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) 
            {
                var window = UIApplication.SharedApplication.KeyWindow;
                var pop = new UIPopoverController (activityController);

                var barButtonItem = sender as UIBarButtonItem;
                if (barButtonItem != null)
                {
                    pop.PresentFromBarButtonItem(barButtonItem, UIPopoverArrowDirection.Any, true);
                }
                else
                {
                    var rect = new CGRect(window.RootViewController.View.Frame.Width / 2, window.RootViewController.View.Frame.Height / 2, 0, 0);
                    pop.PresentFromRect (rect, window.RootViewController.View, UIPopoverArrowDirection.Any, true);
                }
            } 
            else 
            {
                var viewController = UIApplication.SharedApplication.KeyWindow.RootViewController;
                viewController.PresentViewController(activityController, true, null);
            }
        }
			public override void WillHideViewController (UISplitViewController svc, UIViewController aViewController, UIBarButtonItem barButtonItem, UIPopoverController pc)
			{
				barButtonItem.Title =  "MasterList";
				var items = new List<UIBarButtonItem> (Parent.Toolbar.Items);
				items.Insert (0, barButtonItem);
				Parent.Toolbar.SetItems (items.ToArray (), true);
				Parent.MainPopoverController = pc;
			}
 public override void WillHideViewController(UISplitViewController svc, UIViewController aViewController, UIBarButtonItem barButtonItem, UIPopoverController pc)
 {
     _svc = svc as SplitViewController;
     _lefty = barButtonItem;
     _lefty.Title = "Home";
     _pc = pc;
     ReplaceDetailNavigationViewController();
 }
示例#11
0
		public override void WillHideViewController (UISplitViewController svc, UIViewController aViewController, UIBarButtonItem barButtonItem, UIPopoverController pc)
		{
			SessionSpeakersMasterDetail dvc = svc.ViewControllers[1] as SessionSpeakersMasterDetail;
			
			if (dvc != null) {
				dvc.AddNavBarButton (barButtonItem);
				dvc.Popover = pc;
			} else Console.WriteLine ("SessionSplitViewController dvc == null (hide)");
		}
示例#12
0
 public void PresentFromPopover(UIView sender,float x,float y)
 {
     popover = new UIPopoverController(this)
     {
         PopoverContentSize = new SizeF(400, 590)
     };
     popover.PresentFromRect (new CoreGraphics.CGRect (x, y, 1, 1), sender, UIPopoverArrowDirection.Any, true);
     this.View.Layer.Frame = new CoreGraphics.CGRect (0, 0, 400, 590);
 }
		public override void WillHideViewController (UISplitViewController svc, UIViewController aViewController, UIBarButtonItem barButtonItem, UIPopoverController pc)
		{
			PatientDetailViewController dvc = svc.ViewControllers[1] as PatientDetailViewController;
			
			if (dvc != null) {
				dvc.AddNavBarButton (barButtonItem);
				dvc.Popover = pc;
			}
		}
示例#14
0
		public override void WillHideViewController (UISplitViewController svc, UIViewController aViewController, UIBarButtonItem barButtonItem, UIPopoverController pc)
		{
			SpeakerSessionMasterDetail dvc = svc.ViewControllers[1] as SpeakerSessionMasterDetail;
			
			if (dvc != null) {
				dvc.AddNavBarButton (barButtonItem);
				dvc.Popover = pc;
			}
		}
示例#15
0
        public void PresentFromPopover(UIView sender,float x,float y,float vwidth)
        {
            popover = new UIPopoverController(this)
            {

                PopoverContentSize = new SizeF(vwidth, 600)
            };
            popover.PresentFromRect (new CoreGraphics.CGRect (x, y, 1, 1), sender, UIPopoverArrowDirection.Any, true);
        }
 // Flipside View Controller
 public void FlipsideViewControllerDidFinish(FlipsideViewController flipsideViewController)
 {
     if (UserInterfaceIdiomIsPhone) {
         this.DismissViewController (true, null);
     } else {
         this.FlipsidePopoverController.Dismiss (true);
         this.FlipsidePopoverController = null;
     }
 }
示例#17
0
		public override void WillHideViewController (UISplitViewController svc, UIViewController aViewController, UIBarButtonItem barButtonItem, UIPopoverController pc)
		{
			barButtonItem.Title = "Workouts";
			var tabBarViewController = (UITabBarController)svc.ViewControllers[1];			
			var detailsNavController = (UINavigationController)tabBarViewController.SelectedViewController;

			detailsNavController.ViewControllers[0].NavigationItem.SetLeftBarButtonItem (barButtonItem, true);

			controller.Popover = pc;
		}
        public void PresentFromPopover(UIView sender)
        {
            popover = new UIPopoverController(this)
            {
                PopoverContentSize = new SizeF(320, 350)
            };

            var frame = new RectangleF(0, 0,(float)sender.Frame.Width, (float)sender.Frame.Height);
            popover.PresentFromRect(frame, sender, UIPopoverArrowDirection.Down, true);
        }
示例#19
0
        public static void TakePicture(UIViewController parent, Action<NSDictionary> callback)
        {
            Init ();
            picker.SourceType = UIImagePickerControllerSourceType.Camera;
            _callback = callback;

            if (AppDelegate.UserInterfaceIdiomIsPhone == false) {
                popover = new UIPopoverController (picker);
                popover.PresentFromRect (new RectangleF (150, 150, 500, 500), parent.View, UIPopoverArrowDirection.Any, true);
            } else {
                parent.PresentViewController (picker, true, null);
            }
        }
示例#20
0
        // moveToVerifyViewSegue
        public override void ViewDidLoad()
        {
            base.ViewDidLoad ();
            // Perform any additional setup after loading the view, typically from a nib.

            btnAdd.Enabled = false;

            PopMenuView = new PopMenuViewController ();
            PopMenuView.FeatureSelected += (sender, e) => {
                Debug.WriteLine (e.SelectedFeatureName);

                if ("Edit" == e.SelectedFeatureName) {
                    btnAdd.Enabled = true;
                }
                else if ("Edit" == e.SelectedFeatureName) {
                    btnAdd.Enabled = true;
                }
                else {
                    btnAdd.Enabled = false;
                }

            };

            btnMenu.Clicked += (sender, e) => {
                UIPopoverController pop = new UIPopoverController (PopMenuView);
                pop.SetPopoverContentSize (new CGSize (200, 150), true);
                pop.PresentFromBarButtonItem ( btnMenu, UIPopoverArrowDirection.Any, true);
            };

            btnAdd.Clicked += (sender, e) => {
                PerformSegue ("moveToFlow01ViewSegue", this);
            };

            var editingVotes = new VoteManager ().ReadEditVotesFromRemote ();
            AppDelegate.EditingVotes.AddRange (editingVotes);

            var source = new TableSource (AppDelegate.EditingVotes);

            editingVoteTable.Source = source;

            source.EditingVoteSelected += ( sender, e) => {

                AppDelegate.SelectedEditingVote = e.SelectedEditingVote;

                if (AppDelegate.SelectedEditingVote.Status == EditStatus.Request) {
                    PerformSegue ("moveToVerifyViewSegue", this);
                }
            };
        }
		void SharePlaceInfo (object sender, EventArgs e)
		{
			var message = new NSString (string.Format("{0}\n{1}\n{2}", viewModel.Place.Name, viewModel.Place.Website, viewModel.ShortAddress));

			var activityController = new UIActivityViewController (new NSObject [] {
				message
			}, null);

			if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) {
				shareController = new UIPopoverController (activityController);
				shareController.PresentFromBarButtonItem(shareButton, UIPopoverArrowDirection.Any, true);
			} else {
				PresentViewController(activityController, true, null);
			}
		}
        public async void ShowPopoverAsync(NSObject sender)
        {
            // Set the sender to a UIButton.
            UIButton tappedButton = (UIButton)sender;

            var content = new PopoverContentViewController();
            DetailPopover = new UIPopoverController(content);
            DetailPopover.PopoverContentSize = new SizeF(375, 375);
            DetailPopover.PresentFromRect(tappedButton.Frame, View, UIPopoverArrowDirection.Any, true);

            // await! control returns to the caller
            var result = await WaitAsync();

            content.WebViewContent = result;
        }
        public override void WillHideViewController(UISplitViewController svc, 
                                                 UIViewController aViewController, 
                                                 UIBarButtonItem barButtonItem, 
                                                 UIPopoverController pc)
        {
            barButtonItem.Title = "Root View Controller";

              var detailViewController = svc.ViewControllers[1] as ISubstitutableDetailViewController;

              detailViewController.PopOverController = pc;

              detailViewController.RootPopoverButtonItem = barButtonItem;

              detailViewController.ShowRootPopoverButtonItem(detailViewController.RootPopoverButtonItem);
        }
示例#24
0
            /// <summary>
            /// PickerView Must have non-empty frame
            /// </summary>
            public NativePickerContainer(UIView targetView, UIView pickerView, PickerBase owner)
                : base()
            {
                this.owner = owner;
                this.targetView = targetView;
                this.pickerView = pickerView;
                var scroll = new UIScrollView(this.View.Frame);
                if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone)
                {
                    scroll.AddSubview(new UIToolbar(this.View.Frame) { AutoresizingMask = UIViewAutoresizing.FlexibleDimensions });
                }
                scroll.AutoresizingMask = UIViewAutoresizing.FlexibleDimensions;
                scroll.AddSubview(this.pickerView);

                this.View.AddSubview(scroll);

                this.navigation = new UINavigationController(this);
                int navBarVisibilityFactor = this.owner.HideSystemButtons ? 0 : 1;
                this.navigation.NavigationBarHidden = this.owner.HideSystemButtons;

                this.navigation.View.Frame = new CGRect(0, 0, this.pickerView.Frame.Width, this.pickerView.Frame.Height + navBarVisibilityFactor * this.navigation.NavigationBar.Frame.Height);
                this.navigationSize = this.navigation.View.Frame.Size;
                if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad)
                {
                    this.popover = new UIPopoverController(this.navigation);
                    this.popover.PopoverContentSize = this.navigation.View.Frame.Size;
                }
                else
                {
                    this.fadeView.AddSubview(this.navigation.View);
                }

                this.NavigationItem.RightBarButtonItem = new UIBarButtonItem(owner.OkButtonTitle, UIBarButtonItemStyle.Done, (s, e) =>
                {
                    this.Hide(true);
                    if (this.DoneButtonAction != null)
                    {
                        this.DoneButtonAction();
                    }
                });
                this.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(owner.CancelButtonTitle, UIBarButtonItemStyle.Bordered, (s, e) =>
                {
                    this.Hide(true);
                });
            }
		public override void WillHideViewController (UISplitViewController svc, 
                                                 UIViewController aViewController, 
                                                 UIBarButtonItem barButtonItem, 
                                                 UIPopoverController pc)
		{
			//Console.WriteLine("SplitDelegate.WillHideViewController");
			barButtonItem.Title = "Sessions";
      
			var detailViewController = svc.ViewControllers [1] as ISubstitutableDetailViewController;

			detailViewController.PopOverController = pc;
			//Console.WriteLine("SplitDelegate.WillHideViewController - detailViewController.PopOverController is null " + (detailViewController.PopOverController == null).ToString());
			
			detailViewController.RootPopoverButtonItem = barButtonItem;
			//Console.WriteLine("SplitDelegate.WillHideViewController -  detailViewController.RootPopoverButtonItem is null " + (detailViewController.RootPopoverButtonItem == null).ToString());
			
			//Console.WriteLine("SplitDelegate.WillHideViewController - showRootPopoverButtonItem");
			detailViewController.ShowRootPopoverButtonItem (detailViewController.RootPopoverButtonItem);
		}
示例#26
0
        public InvoiceLineCell()
            : base(Key)
        {
            AutoAddSubview (Description = new UILabel {
                Text = "Description",
            }, 4
            );

            AutoAddSubview (Price = new UILabel{ Text = "Price",TextAlignment = UITextAlignment.Center },2);
            AutoAddSubview (Discount = new UIBorderedButton () {
                Title = "0",
                Tapped = (b) =>{

                    if(popup != null)
                        popup.Dispose();

                    var d = new DiscountViewController(line.Price){
                        DollarChanged = (dollar) =>{
                            popup.Dismiss(true);
                            Line.Discount = dollar;
                        }
                    };

                    popup = new UIPopoverController(d);
                    popup.DidDismiss += (object sender, EventArgs e) => {
                        line.Discount = 0;
                        d.Dispose();
                        popup.Dispose();
                        popup = null;
                    };
                    popup.PresentFromRect(Discount.Bounds,Discount, UIPopoverArrowDirection.Any,true);
                }},2);

            AutoAddSubview (TransTypeButton = new UIBorderedButton{ Title = "S" ,TintColor = Color.LightBlue});
            TransTypeButton.TouchUpInside += (sender, e) => {
                var sheet = new SimpleActionSheet();
                var types = Database.Main.Table<TransactionType>().ToList();
                types.ForEach(x=> sheet.Add(x.Description,Color.LightBlue,()=> Line.TransType = x));
                sheet.ShowFrom(TransTypeButton.Bounds,TransTypeButton,true);
            };
            AddSubview (Total = new UILabel{ Text = "Total",TextAlignment = UITextAlignment.Center },9,columnspan:2);
        }
示例#27
0
		public void ShareUrl(string url)
		{
            var item = new NSUrl(new Uri(url).AbsoluteUri);
            var activityItems = new NSObject[] { item };
            UIActivity[] applicationActivities = null;
            var activityController = new UIActivityViewController (activityItems, applicationActivities);


            if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) {
                var window = ((UIApplicationDelegate)UIApplication.SharedApplication.Delegate).Window;

                var pop = new UIPopoverController (activityController);
                pop.PresentFromRect (new CoreGraphics.CGRect (window.RootViewController.View.Frame.Width / 2, window.RootViewController.View.Frame.Height / 2, 0, 0),
                    window.RootViewController.View, UIPopoverArrowDirection.Any, true);

            } else {
                _modalHost.PresentModalViewController(activityController, true);

            }
		}
        public DatePickerPopover(UIView owner)
        {
            this.Owner = owner;
            this.datePicker = new UIDatePicker();
            this.datePicker.Frame = new RectangleF(0, 44, 320, 216);

            var popoverContent = new UIViewController(); //ViewController
            var popoverView = new UIView
            {
                BackgroundColor = UIColor.Black
            };   //view

            popoverView.AddSubview(this.DatePicker);

            popoverContent.View = popoverView;
            popoverController = new UIPopoverController(popoverContent);
            popoverController.Delegate=this;

            popoverController.SetPopoverContentSize(new SizeF(320, 264),  false);
        }
示例#29
0
 public void ShowPicker(UIView viewForPicker, RectangleF location)
 {
     var toolbar = new UIToolbar (new RectangleF (0, 0, 320, 44)) {
         Items = new[] {
             new UIBarButtonItem (UIBarButtonSystemItem.FlexibleSpace),
             new UIBarButtonItem (UIBarButtonSystemItem.Done, (s, e) =>
                 {
                     if (sheet != null) {
                         sheet.DismissWithClickedButtonIndex (0, true);
                         sheet = null;
                     }
                     if (popover != null) {
                         popover.Dismiss(true);
                         popover = null;
                     }
                 })
         },
         BarStyle = UIBarStyle.Default,
     };
     if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Phone) {
         sheet = new UIActionSheet ();
         sheet.AddSubview (this);
         sheet.AddSubviews (toolbar);
         sheet.BackgroundColor = UIColor.Clear;
         sheet.ShowInView (viewForPicker);
         UIView.Animate (.25, () => sheet.Bounds = new RectangleF (0, 0, viewForPicker.Frame.Width, 485));
     } else {
         this.Frame = new RectangleF (0, 44, 320, 216);
         var view = new UIView ();
         view.Add (this);
         view.Add (toolbar);
         var vc = new UIViewController ();
         vc.View = view;
         vc.PreferredContentSize = new SizeF (320, 260);
         popover = new UIPopoverController (vc);
         popover.PresentFromRect (location, viewForPicker, UIPopoverArrowDirection.Down, true);
     }
 }
        public void WillHideViewController(UISplitViewController splitController, UIViewController viewController, UIBarButtonItem barButtonItem, UIPopoverController popoverController)
        {
            object [] args = new object [] {
                __luaInterface_luaTable ,
                splitController,
                viewController,
                barButtonItem,
                popoverController
            };

            object [] inArgs = new object [] {
                __luaInterface_luaTable,
                splitController,
                viewController,
                barButtonItem,
                popoverController
            };

            int [] outArgs = new int [] { };
            Type [] returnTypes = new Type [1] { typeof(void) };
            LuaFunction function = NLua.Method.LuaClassHelper.GetTableFunction (__luaInterface_luaTable, "WillHideViewController");
            NLua.Method.LuaClassHelper.CallFunction (function, args, returnTypes, inArgs, outArgs);
        }
 public void WillHideViewController(UISplitViewController splitController, UIViewController viewController, UIBarButtonItem barButtonItem, UIPopoverController popoverController)
 {
     barButtonItem.Title = NSBundle.MainBundle.LocalizedString("Master", "Master");
     NavigationItem.SetLeftBarButtonItem(barButtonItem, true);
     masterPopoverController = popoverController;
 }
示例#32
0
 public void SetPopoverController(UIPopoverController popoverC)
 {
     DismissPopoverView();
     AppDelegateInstance.CurPopoverController = popoverC;
 }
 public override void WillHideViewController(UISplitViewController svc, UIViewController aViewController, UIBarButtonItem barButtonItem, UIPopoverController pc)
 {
     PresentButton = barButtonItem;
 }
示例#34
0
 public override void WillHideViewController(UISplitViewController svc, UIViewController aViewController, UIBarButtonItem barButtonItem, UIPopoverController pc)
 {
     this.TwitterDetailsViewController.PopOver = pc;
     this.TwitterDetailsViewController.AddToolBarButton(barButtonItem);
 }
 /// <summary>
 /// Shoulds the dismiss.
 /// </summary>
 /// <param name="popoverController">The popover controller.</param>
 /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
 public override bool ShouldDismiss(UIPopoverController popoverController)
 {
     return(true);
 }
示例#36
0
        private async Task <Auth0User> SendLoginAsync(
            RectangleF rect,
            object view,
            string connection,
            bool withRefreshToken,
            string scope,
            string title)
        {
            // Launch server side OAuth flow using the GET endpoint
            scope = IncreaseScopeWithOfflineAccess(withRefreshToken, scope);

            var tcs  = new TaskCompletionSource <Auth0User> ();
            var auth = await this.GetAuthenticator(connection, scope, title);


            UIViewController c = auth.GetUI();

            UIViewController    controller = null;
            UIPopoverController popover    = null;

            auth.Error += (o, e) =>
            {
                if (controller != null)
                {
                    controller.DismissViewController(true, null);
                }

                if (popover != null)
                {
                    popover.Dismiss(true);
                }

                var ex = e.Exception ?? new AuthException(e.Message);
                tcs.TrySetException(ex);
            };

            auth.Completed += (o, e) =>
            {
                if (controller != null)
                {
                    controller.DismissViewController(true, null);
                }

                if (popover != null)
                {
                    popover.Dismiss(true);
                }

                if (!e.IsAuthenticated)
                {
                    tcs.TrySetCanceled();
                }
                else
                {
                    this.SetupCurrentUser(e.Account.Properties);
                    tcs.TrySetResult(this.CurrentUser);
                }
            };

            controller = view as UIViewController;
            if (controller != null)
            {
                controller.PresentViewController(c, true, null);
            }
            else
            {
                UIView          v         = view as UIView;
                UIBarButtonItem barButton = view as UIBarButtonItem;

                popover = new UIPopoverController(c);

                if (barButton != null)
                {
                    popover.PresentFromBarButtonItem(barButton, UIPopoverArrowDirection.Any, true);
                }
                else
                {
                    popover.PresentFromRect(rect, v, UIPopoverArrowDirection.Any, true);
                }
            }

            return(await tcs.Task);
        }
示例#37
0
 protected abstract void SetPopover(UIPopoverController popover);
示例#38
0
            public override void WillHideViewController(UISplitViewController svc, UIViewController aViewController, UIBarButtonItem barButtonItem, UIPopoverController pc)
            {
                var dvc = svc as SplitViewController;

                if (dvc != null)
                {
                    dvc.AddNavigationButton(barButtonItem);
                    dvc.SetPopover(pc);
                }
            }
        private Task <MediaFile> GetMediaAsync(UIImagePickerControllerSourceType sourceType, string mediaType, StoreCameraMediaOptions options = null)
        {
            UIViewController viewController = null;
            UIWindow         window         = UIApplication.SharedApplication.KeyWindow;

            if (window == null)
            {
                throw new InvalidOperationException("There's no current active window");
            }

            if (window.WindowLevel == UIWindowLevel.Normal)
            {
                viewController = window.RootViewController;
            }

            if (viewController == null)
            {
                window = UIApplication.SharedApplication.Windows.OrderByDescending(w => w.WindowLevel).FirstOrDefault(w => w.RootViewController != null && w.WindowLevel == UIWindowLevel.Normal);
                if (window == null)
                {
                    throw new InvalidOperationException("Could not find current view controller");
                }
                else
                {
                    viewController = window.RootViewController;
                }
            }

            while (viewController.PresentedViewController != null)
            {
                viewController = viewController.PresentedViewController;
            }

            MediaPickerDelegate ndelegate = new MediaPickerDelegate(viewController, sourceType, options);
            var od = Interlocked.CompareExchange(ref pickerDelegate, ndelegate, null);

            if (od != null)
            {
                throw new InvalidOperationException("Only one operation can be active at at time");
            }

            var picker = SetupController(ndelegate, sourceType, mediaType, options);

            if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad && sourceType == UIImagePickerControllerSourceType.PhotoLibrary)
            {
                ndelegate.Popover          = new UIPopoverController(picker);
                ndelegate.Popover.Delegate = new MediaPickerPopoverDelegate(ndelegate, picker);
                ndelegate.DisplayPopover();
            }
            else
            {
                if (UIDevice.CurrentDevice.CheckSystemVersion(9, 0))
                {
                    picker.ModalPresentationStyle = UIModalPresentationStyle.OverCurrentContext;
                }
                viewController.PresentViewController(picker, true, null);
            }

            return(ndelegate.Task.ContinueWith(t =>
            {
                if (popover != null)
                {
                    popover.Dispose();
                    popover = null;
                }

                Interlocked.Exchange(ref pickerDelegate, null);
                return t;
            }).Unwrap());
        }
示例#40
0
 public override void DidDismiss(UIPopoverController aPopoverController)
 {
     Dismiss();
 }
示例#41
0
        protected override Task <string> LoginAsyncOverride()
        {
            var tcs = new TaskCompletionSource <string>();

            var auth = new WebRedirectAuthenticator(StartUri, EndUri);

            auth.ClearCookiesBeforeLogin = false;

            UIViewController c = auth.GetUI();

            UIViewController    controller = null;
            UIPopoverController popover    = null;

            auth.Error += (o, e) =>
            {
                NSAction completed = () =>
                {
                    Exception ex = e.Exception ?? new Exception(e.Message);
                    tcs.TrySetException(ex);
                };

                if (controller != null)
                {
                    controller.DismissViewController(true, completed);
                }
                if (popover != null)
                {
                    popover.Dismiss(true);
                    completed();
                }
            };

            auth.Completed += (o, e) =>
            {
                NSAction completed = () =>
                {
                    if (!e.IsAuthenticated)
                    {
                        tcs.TrySetException(new InvalidOperationException(Resources.IAuthenticationBroker_AuthenticationCanceled));
                    }
                    else
                    {
                        tcs.TrySetResult(e.Account.Properties["token"]);
                    }
                };

                if (controller != null)
                {
                    controller.DismissViewController(true, completed);
                }
                if (popover != null)
                {
                    popover.Dismiss(true);
                    completed();
                }
            };

            controller = view as UIViewController;
            if (controller != null)
            {
                controller.PresentViewController(c, true, null);
            }
            else
            {
                UIView          v         = view as UIView;
                UIBarButtonItem barButton = view as UIBarButtonItem;

                popover = new UIPopoverController(c);

                if (barButton != null)
                {
                    popover.PresentFromBarButtonItem(barButton, UIPopoverArrowDirection.Any, true);
                }
                else
                {
                    popover.PresentFromRect(rect, v, UIPopoverArrowDirection.Any, true);
                }
            }

            return(tcs.Task);
        }
示例#42
0
 public override void WillPresentViewController(UISplitViewController svc, UIPopoverController pc, UIViewController aViewController)
 {
 }
示例#43
0
 public void WillShowMasterViewController(UISplitViewController splitViewController, UIViewController masterViewController, UIBarButtonItem barButtonItem)
 {
     NavigationItem.SetLeftBarButtonItem(null, true);
     masterPopoverController = null;
 }
示例#44
0
        Task <MediaFile> GetMediaAsync(UIImagePickerControllerSourceType sourceType, string mediaType, StoreCameraMediaOptions options = null, CancellationToken token = default(CancellationToken))
        {
            var viewController = GetHostViewController();

            if (token.IsCancellationRequested)
            {
                return(Task.FromResult((MediaFile)null));
            }

            var ndelegate = new MediaPickerDelegate(viewController, sourceType, options, token);
            var od        = Interlocked.CompareExchange(ref pickerDelegate, ndelegate, null);

            if (od != null)
            {
                throw new InvalidOperationException("Only one operation can be active at a time");
            }

            var picker = SetupController(ndelegate, sourceType, mediaType, options);

            if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad && sourceType == UIImagePickerControllerSourceType.PhotoLibrary)
            {
                ndelegate.Popover          = popover = new UIPopoverController(picker);
                ndelegate.Popover.Delegate = new MediaPickerPopoverDelegate(ndelegate, picker);
                ndelegate.DisplayPopover();

                token.Register(() =>
                {
                    if (popover == null)
                    {
                        return;
                    }
                    NSRunLoop.Main.BeginInvokeOnMainThread(() =>
                    {
                        ndelegate.Popover.Dismiss(true);
                        ndelegate.CancelTask();
                    });
                });
            }
            else
            {
                if (UIDevice.CurrentDevice.CheckSystemVersion(9, 0))
                {
                    picker.ModalPresentationStyle = options?.ModalPresentationStyle == MediaPickerModalPresentationStyle.OverFullScreen
                                                ? UIModalPresentationStyle.OverFullScreen
                                                : UIModalPresentationStyle.FullScreen;
                }
                viewController.PresentViewController(picker, true, null);

                token.Register(() =>
                {
                    if (picker == null)
                    {
                        return;
                    }

                    NSRunLoop.Main.BeginInvokeOnMainThread(() =>
                    {
                        picker.DismissModalViewController(true);
                        ndelegate.CancelTask();
                    });
                });
            }

            return(ndelegate.Task.ContinueWith(t =>
            {
                Dismiss(popover, picker);

                return t.Result == null ? null : t.Result.FirstOrDefault();
            }));
        }
示例#45
0
 public void WillHideMasterViewController(UISplitViewController splitViewController, UIViewController masterViewController, UIBarButtonItem barButtonItem, UIPopoverController popoverController)
 {
     barButtonItem.Title = masterViewController.Title;
     NavigationItem.SetLeftBarButtonItem(barButtonItem, true);
     masterPopoverController = popoverController;
 }
示例#46
0
        public InvoiceViewController()
        {
            SetTitle();
            Settings.Shared.SubscribeToProperty("TestMode", SetTitle);
            var searchBar = new ItemSearchView {
                Frame = new System.Drawing.RectangleF(0, 0, 200, 30)
            };

            searchBar.ItemSelected += (Item obj) => {
                Invoice.AddItem(obj);
            };
            NavigationItem.RightBarButtonItem = new UIBarButtonItem(searchBar);
            NavigationItem.LeftBarButtonItem  = new UIBarButtonItem(UIImage.FromBundle("menu").ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), UIBarButtonItemStyle.Plain, (s, e) => {
                //Show simple actionsheet
                if (sheet != null)
                {
                    sheet.DismissWithClickedButtonIndex(-1, true);
                    return;
                }
                sheet = new SimpleActionSheet {
                    { "New Invoice", async() => {
                          if (await AskSave())
                          {
                              NewInvoice();
                          }
                      } },
                    { "Load Invoice", () => {
                          if (popover != null)
                          {
                              popover.Dismiss(true);
                          }
                          popover = new UIPopoverController(new UINavigationController(new LoadInvoiceViewController()
                            {
                                InvoiceSelected = async(i) => {
                                    popover.Dismiss(true);
                                    try{
                                        BigTed.BTProgressHUD.ShowContinuousProgress();
                                        if (Invoice != null && Invoice.Id != i.Id)
                                        {
                                            if (!await AskSave())
                                            {
                                                return;
                                            }
                                        }
                                        Invoice.DeleteLocal();
                                        Invoice = await WebService.Main.GetInvoice(i.Id);
                                        Invoice.Save(true);
                                    }
                                    catch (Exception ex)
                                    {
                                        Console.WriteLine(ex);
                                    }
                                    finally{
                                        BigTed.BTProgressHUD.Dismiss();
                                    }
                                },
                            }));
                          popover.DidDismiss += (sender, evt) => {
                              popover.Dispose();
                          };
                          popover.PresentFromBarButtonItem(NavigationItem.LeftBarButtonItem, UIPopoverArrowDirection.Any, true);
                      } },
                    { "Payout Buy", () => {
                          if (popover != null)
                          {
                              popover.Dismiss(true);
                          }
                          popover = new UIPopoverController(new UINavigationController(new LoadBuyPayoutViewController()
                            {
                                InvoiceSelected = async(i) => {
                                    popover.Dismiss(true);
                                    try{
                                        BigTed.BTProgressHUD.ShowContinuousProgress();
                                        if (Invoice != null && Invoice.Id != i.Id)
                                        {
                                            if (!await AskSave())
                                            {
                                                return;
                                            }
                                        }
                                        Invoice.DeleteLocal();
                                        Invoice = await WebService.Main.GetInvoice(i.Id);
                                        //Setup payments
                                        Database.Main.Table <PaymentType> ().Where(x => x.IsActive)
                                        .OrderBy(X => X.SortOrder).ToList().ForEach(x => Invoice.Payments.Add(new Payment {
                                            PaymentType = x
                                        }));
                                        Invoice.Save(true);
                                        if ((i as BuyInvoice).IsOnAccount)
                                        {
                                            Invoice.OnAccountPayment.Amount = Invoice.Total;
                                        }
                                        else
                                        {
                                            Invoice.CashPayment.Amount = Invoice.Total;
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        Console.WriteLine(ex);
                                    }
                                    finally{
                                        BigTed.BTProgressHUD.Dismiss();
                                    }
                                },
                            }));
                          popover.DidDismiss += (sender, evt) => {
                              popover.Dispose();
                          };
                          popover.PresentFromBarButtonItem(NavigationItem.LeftBarButtonItem, UIPopoverArrowDirection.Any, true);
                      } },
                    { "Settings", () => this.PresentViewControllerAsync(new UINavigationController(new SettingsViewController()), true) },
                };
                sheet.Dismissed += (object sender, UIButtonEventArgs e2) => {
                    sheet.Dispose();
                    sheet = null;
                };
                sheet.ShowFrom(s as UIBarButtonItem, true);
            });

            //this.AutomaticallyAdjustsScrollViewInsets = false;
        }
 /// <summary>
 /// Dids the dismiss.
 /// </summary>
 /// <param name="popoverController">The popover controller.</param>
 public override void DidDismiss(UIPopoverController popoverController)
 {
     _pickerDelegate.Canceled(_picker);
 }
示例#48
0
 public MapViewDelegate()
 {
     popoverController = new UIPopoverController(new UIViewController());
     popoverController.PopoverContentSize = new CoreGraphics.CGSize(100, 100);
 }
示例#49
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            bannerView.Hidden = true;

            UIApplication.SharedApplication.SetStatusBarHidden(true, false);
            Util.SetColorsOnStartup();
            this.KeysCollectionView.BackgroundColor = Util.BackgroundColor;

            ClearButton(ExportConfigBtn);
            ExportConfigBtn.SetImage(Images.ExportConfigImg, UIControlState.Normal);
            ClearButton(ImportConfigBtn);
            ImportConfigBtn.SetImage(Images.ImportConfigImg, UIControlState.Normal);
            ClearButton(NewConfigBtn);
            NewConfigBtn.SetImage(Images.NewConfigImg, UIControlState.Normal);
            ClearButton(SearchConfigBtn);
            SearchConfigBtn.SetImage(Images.SearchConfigImg, UIControlState.Normal);
            ClearButton(SelectConfigBtn);
            SelectConfigBtn.SetImage(Images.ListConfigsImg, UIControlState.Normal);
            ClearButton(SettingsBtn);
            SettingsBtn.SetImage(Images.SettingsImg, UIControlState.Normal);
            ClearButton(EditBtn);
            EditBtn.SetImage(Images.EditConfigImg, UIControlState.Normal);
            //EditBtn.SetImage(Images.EditConfigImgSelected,UIControlState.Selected);

            //load last used configuration or default
            if (Util.GetLastConfigurationUsed() == null)                //this is the first run ever
            {
                DBManager.Instance.CreateTables();
                _keySourceData = new KeySource(new List <FPKey> ());
            }
            else
            {
                _loadedConfiguration = ConfigsEngine.LoadConfiguration(Util.GetLastConfigurationUsed());
                _keySourceData       = new KeySource(_loadedConfiguration.Keys);
                ConfigNameLbl.Text   = _loadedConfiguration.Name.ToUpper();
            }

            //TODO add iphone
            KeysCollectionView.RegisterNibForCell(UINib.FromName("KeyCell_iPad", NSBundle.MainBundle), KeyCell.Key);

            _keySourceData.KeyPressed += HandleKeyPressed;
            _keySourceData.OnKeyMoved += HandleKeyMoved;
            KeysCollectionView.Source  = _keySourceData;
            KeysCollectionView.DelaysContentTouches = false;

            var longPressGesture = new UILongPressGestureRecognizer(HandleLongGesture);

            KeysCollectionView.AddGestureRecognizer(longPressGesture);

            #region Config popOver
            UIViewController configListViewController = new UIViewController();
            configListViewController.View = ConfigListTableView;
            configListViewController.View.BackgroundColor = UIColor.White;
            _configListPopOver = new UIPopoverController(configListViewController);
            _configListPopOver.BackgroundColor = UIColor.White;

            _configsSource = new ConfigurationsListSource();
            _configsSource.OnConfigurationSelected += OnConfigurationSelected;
            _configsSource.OnConfigurationDeleted  += OnConfigurationDeleted;

            ConfigListTableView.Source = _configsSource;
            ConfigListTableView.ReloadData();
            ConfigListTableView.TableFooterView = new UIView();
            #endregion

            Util.OnEnableNightMode += OnNightModeChanged;

#if !DISCONNECTED
            CommsEngine.Instance.OnServerDisconnected += HandleOnServerDisconnected;
            if (Util.GetServerIP() == null)                //first Time
            {
                PresentServerSelection();
            }
            else
            {
                CommsEngine.Instance.OnClientConnected += HandleOnClientConnected;
                ConnectToLastKnownServer();
            }
#else
            if (Util.GetLastConfigurationUsed() == null)
            {
                LoadDefaultConfiguration();
            }
                        #endif
        }
示例#50
0
        private void loadpop(NSObject sender)
        {
            int items = 0;

            try {
                items = dataPos.shareoptions.Count;
            } catch {
                items = 0;
            }

            if (items == 0)
            {
                return;
            }

            shareList = new string[items];
            items     = 0;
            foreach (shareOptions s in dataPos.shareoptions)
            {
                shareList [items] = s.key;
                items++;
            }

            /*
             * shareList[0]= "FaceBook";
             * shareList[1]= "Twitter";
             * shareList[2]= "Email";
             */
            if (showComboTaks)
            {
                return;
            }

            cmbShare _pickerDataModel;

            _pickerDataModel = new cmbShare(this, shareList);

            BarraShare = BarraShareGet();
            pkrShare   = new UIPickerView(new RectangleF(0, 200, 320, 216));

            pkrShare.Source = _pickerDataModel;
            pkrShare.ShowSelectionIndicator = true;

            UIViewController vistaMain = new UIViewController();

            vistaMain.View.Frame = new RectangleF(0, 0, 320, 240);
            BarraShare.Frame     = new RectangleF(0, 0, 320, 40);
            pkrShare.Frame       = new RectangleF(0, 40, 320, 216);
            vistaMain.View.AddSubview(BarraShare);
            vistaMain.View.AddSubview(pkrShare);
            popviewNavigate = new UINavigationController(vistaMain);


            detailparameters = new UIPopoverController(popviewNavigate);
            detailparameters.SetPopoverContentSize(new SizeF(320, 240), true);

            detailparameters.DidDismiss += delegate {
                LastTappedButton = null;
                detailparameters = null;
            };
            UIButton tappedButton = (UIButton)sender;

            // this is for present the pop View
            detailparameters.PresentFromRect(tappedButton.Frame, View, UIPopoverArrowDirection.Any, true);
            LastTappedButton = tappedButton;
        }
示例#51
0
        {               // this defines split controller behavior in case of device orientation changes
            public override void WillHideViewController(UISplitViewController svc, UIViewController aViewController, UIBarButtonItem barButtonItem, UIPopoverController pc)
            {
                DetailedTabs dvc = svc.ViewControllers[1] as DetailedTabs;

                if (dvc != null)
                {
                    // defines the new frame for right side view controller which should now take up the entire screen space
                    dvc.View.Frame = new CoreGraphics.CGRect(0, 0, 768, 1004);

                    // adds a button which will show the left side table with customers data when tapped
                    dvc.AddLeftNavBarButton(barButtonItem);

                    // defines a navigation frame for the navigation bar
                    dvc.MyNavigationBar.Frame = new CoreGraphics.CGRect(0, 0, dvc.View.Bounds.Width, 44);

                    // set up the popover view controller ( JobRunTable )
                    dvc.Popover = pc;
                }
            }
 public override void DidDismiss(UIPopoverController popoverController)
 {
     _parent.shareController = null;
 }
 public void WillShowViewController(UISplitViewController svc, UIViewController vc, UIBarButtonItem button)
 {
     // Called when the view is shown again in the split view, invalidating the button and popover controller.
     NavigationItem.SetLeftBarButtonItem(null, true);
     masterPopoverController = null;
 }
示例#54
0
            public override void WillHideViewController(UISplitViewController svc, UIViewController aViewController, UIBarButtonItem barButtonItem, UIPopoverController pc)
            {
                barButtonItem.Title = "MasterList";
                var items = new List <UIBarButtonItem> (Parent.Toolbar.Items);

                items.Insert(0, barButtonItem);
                Parent.Toolbar.SetItems(items.ToArray(), true);
                Parent.MainPopoverController = pc;
            }
        /// <summary>
        /// Gets the media asynchronous.
        /// </summary>
        /// <param name="sourceType">Type of the source.</param>
        /// <param name="mediaType">Type of the media.</param>
        /// <param name="options">The options.</param>
        /// <returns>Task&lt;MediaFile&gt;.</returns>
        /// <exception cref="InvalidOperationException">
        /// There's no current active window
        /// or
        /// Could not find current view controller
        /// or
        /// Only one operation can be active at at time
        /// </exception>
        private Task <MediaFile> GetMediaAsync(
            UIImagePickerControllerSourceType sourceType,
            string mediaType,
            MediaStorageOptions options = null)
        {
            var window = UIApplication.SharedApplication.KeyWindow;

            if (window == null)
            {
                throw new InvalidOperationException("There's no current active window");
            }

            var viewController = window.RootViewController;

#if __IOS_10__
            if (viewController == null || (viewController.PresentedViewController != null && viewController.PresentedViewController.GetType() == typeof(UIAlertController)))
            {
                window =
                    UIApplication.SharedApplication.Windows.OrderByDescending(w => w.WindowLevel)
                    .FirstOrDefault(w => w.RootViewController != null);

                if (window == null)
                {
                    throw new InvalidOperationException("Could not find current view controller");
                }

                viewController = window.RootViewController;
            }
#endif
            while (viewController.PresentedViewController != null)
            {
                viewController = viewController.PresentedViewController;
            }

            var ndelegate = new MediaPickerDelegate(viewController, sourceType, options);
            var od        = Interlocked.CompareExchange(ref _pickerDelegate, ndelegate, null);
            if (od != null)
            {
                throw new InvalidOperationException("Only one operation can be active at at time");
            }

            var picker = SetupController(ndelegate, sourceType, mediaType, options);

            if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad &&
                sourceType == UIImagePickerControllerSourceType.PhotoLibrary)
            {
                ndelegate.Popover = new UIPopoverController(picker)
                {
                    Delegate = new MediaPickerPopoverDelegate(ndelegate, picker)
                };
                ndelegate.DisplayPopover();
            }
            else
            {
                viewController.PresentViewController(picker, true, null);
            }

            return(ndelegate.Task.ContinueWith(
                       t =>
            {
                if (_popover != null)
                {
                    _popover.Dispose();
                    _popover = null;
                }

                Interlocked.Exchange(ref _pickerDelegate, null);
                return t;
            }).Unwrap());
        }
示例#56
0
 public override void WillPresentViewController(UISplitViewController svc, UIPopoverController pc, UIViewController aViewController)
 {
     if (Parent.BarButtonItemPopover.PopoverVisible)
     {
         Parent.BarButtonItemPopover.Dismiss(true);
     }
 }
示例#57
0
 public override bool ShouldDismiss(UIPopoverController popoverController) => true;