public override void ViewWillAppear(bool animated) { base.ViewWillAppear(animated); var root = new RootElement(Title); var accountSection = new Section("Accounts"); root.Add(accountSection); foreach (var account in Application.Accounts) { var thisAccount = account; var t = new AccountElement(thisAccount); t.Tapped += () => { Application.SetUser(thisAccount); DismissModalViewControllerAnimated(true); }; //Check to see if this account is the active account. Application.Account could be null //so make it the target of the equals, not the source. if (thisAccount.Equals(Application.Account)) t.Accessory = UITableViewCellAccessory.Checkmark; accountSection.Add(t); } var addAccount = new StyledElement("Add Account", () => { var ctrl = new GitHubLoginController(); ctrl.LoginComplete = (a) => NavigationController.PopToViewController(this, true); NavigationController.PushViewController(ctrl, true); }); //addAccount.Image = Images.CommentAdd; accountSection.Add(addAccount); var supportSection = new Section("Support"); root.Add (supportSection); supportSection.Add(new StyledElement("Feedback & Support", OpenUserVoice)); var aboutSection = new Section("About", "Thank you for downloading. Enjoy!"); root.Add(aboutSection); aboutSection.Add(new StyledElement("Follow On Twitter", () => UIApplication.SharedApplication.OpenUrl(new NSUrl("https://twitter.com/Codebucketapp")))); aboutSection.Add(new StyledElement("Rate This App", () => UIApplication.SharedApplication.OpenUrl(new NSUrl("https://itunes.apple.com/us/app/codebucket/id551531422?mt=8")))); aboutSection.Add(new StyledElement("App Version", NSBundle.MainBundle.InfoDictionary.ValueForKey(new NSString("CFBundleVersion")).ToString())); //Assign the root Root = root; }
protected void UpdateView() { var root = new RootElement(Title) { UnevenRows = true }; var section = new Section(); root.Add(section); var desc = new MultilinedElement("Description") { Value = _model.Description }; desc.Tapped += ChangeDescription; section.Add(desc); if (_public == null) _public = new TrueFalseElement("Public"); _public.Value = _model.Public; if (_publicEditable) section.Add(_public); var fileSection = new Section(); root.Add(fileSection); foreach (var file in _model.Files.Keys) { var key = file; if (!_model.Files.ContainsKey(key) || _model.Files[file].Content == null) continue; var size = System.Text.ASCIIEncoding.UTF8.GetByteCount(_model.Files[file].Content); var el = new StyledElement(file, size + " bytes", UITableViewCellStyle.Subtitle) { Accessory = UITableViewCellAccessory.DisclosureIndicator }; el.Tapped += () => { if (!_model.Files.ContainsKey(key)) return; var createController = new ModifyGistFileController(key, _model.Files[key].Content); createController.Save = (name, content) => { if (string.IsNullOrEmpty(name)) throw new InvalidOperationException("Please enter a name for the file"); //If different name & exists somewhere else if (!name.Equals(key) && _model.Files.ContainsKey(name)) throw new InvalidOperationException("A filename by that type already exists"); //Remove old _model.Files.Remove(key); //Put new _model.Files[name] = new GistCreateModel.File { Content = content }; }; NavigationController.PushViewController(createController, true); }; fileSection.Add(el); } fileSection.Add(new StyledElement("Add New File", AddFile)); Root = root; }