Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
using System;
using System.Drawing;
using System.Linq;
using MonoTouch.Foundation;
using MonoTouch.MessageUI;
using MonoTouch.UIKit;
[Register("AppDelegate")]
public class AppDelegate : UIApplicationDelegate
{
public UIViewController MainController { get; set; }
public UIWindow Window { get; set; }
public override bool FinishedLaunching(UIApplication application,
NSDictionary launchOptions)
{
Window = new UIWindow(UIScreen.MainScreen.Bounds);
//MainController = new MyTabController("Some Value");
MainController = new MySendEmailController();
Window.RootViewController = MainController;
Window.MakeKeyAndVisible();
return true;
}
}
public class MySendEmailController : UITabBarController
{
private MyEmailScreen _sendEmailScreen;
private UIViewController _dummyTab;
public override void ViewDidLoad()
{
base.ViewDidLoad();
_sendEmailScreen = new MyEmailScreen();
_sendEmailScreen.View.BackgroundColor = UIColor.Black;
_sendEmailScreen.Title = "Send Email";
_dummyTab = new UIViewController();
_dummyTab.Title = "Green";
_dummyTab.View.BackgroundColor = UIColor.Green;
var tabs = new UIViewController[]{
_sendEmailScreen, _dummyTab
};
ViewControllers = tabs;
SelectedViewController = _sendEmailScreen;
}
}
public class MyEmailScreen : UIViewController
{
private UIButton _button;
private MFMailComposeViewController _mailController;
public override void ViewDidLoad()
{
base.ViewDidLoad();
_button = new UIButton(new RectangleF(0,0, View.Bounds.Width, 100));
_button.SetTitle("Click me", UIControlState.Normal);
_button.TouchUpInside +=(sender, args) =>
{
_mailController = new MFMailComposeViewController();
_mailController.SetSubject("Can't dismiss me");
_mailController.SetMessageBody("Cant dismiss on opening a second time", false);
_mailController.Finished += FinishedSendingEmail;
PresentViewController(_mailController, true, null);
};
Add(_button);
}
private void FinishedSendingEmail(object s, MFComposeResultEventArgs args)
{
Console.WriteLine (args.Result.ToString ());
this.InvokeOnMainThread (() => {
_mailController.DismissViewController (true, null);
});
// note: do not call Dispose manually since it's still being used by iOS
// instead let the GC do it's job (that will happen once iOS does not need it anymore)
_mailController.Dispose ();
_mailController = null;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment