Skip to content

Instantly share code, notes, and snippets.

@lothrop
Last active January 1, 2016 22:36
Show Gist options
  • Save lothrop/5f114fee723eed2eedce to your computer and use it in GitHub Desktop.
Save lothrop/5f114fee723eed2eedce to your computer and use it in GitHub Desktop.
using MvvmCross.Binding.BindingContext;
using MvvmCross.iOS.Views;
using iOSViewDemo.Core.ViewModels;
using UIKit;
namespace iOSViewDemo.iOS.Views
{
public class CodeViewController : MvxViewController<FirstViewModel>
{
private UILabel UiLabel { get; } = new UILabel { TranslatesAutoresizingMaskIntoConstraints = false };
private UITextField UiTextField { get; } = new UITextField { TranslatesAutoresizingMaskIntoConstraints = false };
private UIButton UiButton { get; } = new UIButton { TranslatesAutoresizingMaskIntoConstraints = false };
public override void ViewDidLoad()
{
base.ViewDidLoad();
this.View = new UIView { BackgroundColor = UIColor.White };
UiButton.SetTitle("Download", UIControlState.Normal);
UiButton.SetTitleColor(UIColor.Blue, UIControlState.Normal);
UiTextField.BorderStyle = UITextBorderStyle.RoundedRect;
View.AddSubviews(UiLabel, UiTextField, UiButton);
var constraints = new[]
{
NSLayoutConstraint.Create(UiLabel, NSLayoutAttribute.Top, NSLayoutRelation.Equal, View,
NSLayoutAttribute.Top, 1, 80),
NSLayoutConstraint.Create(UiLabel, NSLayoutAttribute.CenterX, NSLayoutRelation.Equal, View,
NSLayoutAttribute.CenterX, 1, 0),
NSLayoutConstraint.Create(UiLabel, NSLayoutAttribute.Left, NSLayoutRelation.Equal, View,
NSLayoutAttribute.Left, 1, 33),
NSLayoutConstraint.Create(UiTextField, NSLayoutAttribute.Width, NSLayoutRelation.Equal, UiLabel,
NSLayoutAttribute.Width, 1, 0),
NSLayoutConstraint.Create(UiTextField, NSLayoutAttribute.CenterX, NSLayoutRelation.Equal, View,
NSLayoutAttribute.CenterX, 1, 0),
NSLayoutConstraint.Create(UiTextField, NSLayoutAttribute.Top, NSLayoutRelation.Equal, UiLabel,
NSLayoutAttribute.Bottom, 1, 14),
NSLayoutConstraint.Create(UiButton, NSLayoutAttribute.CenterX, NSLayoutRelation.Equal, View,
NSLayoutAttribute.CenterX, 1, 0),
NSLayoutConstraint.Create(UiButton, NSLayoutAttribute.Top, NSLayoutRelation.Equal, UiTextField,
NSLayoutAttribute.Bottom, 1, 14)
};
View.AddConstraints(constraints);
var set = this.CreateBindingSet<CodeViewController, FirstViewModel>();
set.Bind(UiLabel).To(vm => vm.MyProperty);
set.Bind(UiTextField).To(vm => vm.MyProperty);
set.Bind(UiButton).To(vm => vm.MyCommand);
set.Apply();
var tap = new UITapGestureRecognizer(() => UiTextField.ResignFirstResponder());
View.AddGestureRecognizer(tap);
}
}
}
using System;
using MvvmCross.Binding.BindingContext;
using MvvmCross.iOS.Views;
using iOSViewDemo.Core.ViewModels;
using UIKit;
namespace iOSViewDemo.iOS.Views
{
[MvxFromStoryboard]
public partial class StoryboardViewController : MvxViewController<FirstViewModel>
{
public StoryboardViewController(IntPtr handle) : base(handle)
{
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
var set = this.CreateBindingSet<StoryboardViewController, FirstViewModel>();
set.Bind(UiLabel).To(vm => vm.MyProperty);
set.Bind(UiTextField).To(vm => vm.MyProperty);
set.Bind(UiButton).To(vm => vm.MyCommand);
set.Apply();
var tap = new UITapGestureRecognizer(() => UiTextField.ResignFirstResponder());
View.AddGestureRecognizer(tap);
}
}
}
using MvvmCross.Binding.BindingContext;
using MvvmCross.iOS.Views;
using iOSViewDemo.Core.ViewModels;
using UIKit;
namespace iOSViewDemo.iOS.Views
{
public partial class XibViewController : MvxViewController<FirstViewModel>
{
public XibViewController() : base("XibViewController", null)
{
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
var set = this.CreateBindingSet<XibViewController, FirstViewModel>();
set.Bind(UiLabel).To(vm => vm.MyProperty);
set.Bind(UiTextField).To(vm => vm.MyProperty);
set.Bind(UiButton).To(vm => vm.MyCommand);
set.Apply();
var tap = new UITapGestureRecognizer(() => UiTextField.ResignFirstResponder());
View.AddGestureRecognizer(tap);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment