Note that there are some explanatory texts on larger screens.

plurals
  1. POMONOTOUCH open a viewcontroller on tableview cell is clicked
    primarykey
    data
    text
    <p>I Have the following viewcontroller with a tableview and a custom cell:</p> <pre><code>using System; using System.Drawing; using MonoTouch.Foundation; using MonoTouch.UIKit; using System.Linq; using System.Threading; using System.Data; using System.IO; using Mono.Data.Sqlite; using System.Collections.Generic; using Zurfers.Mobile.Core; using AlexTouch.MBProgressHUD; using System.Collections; namespace Zurfers.Mobile.iOS { public partial class iPhoneHotelSearchViewController : UIViewController { MBProgressHUD hud; public string Destination { get; set; } public DateTime CheckInDate { get; set; } public DateTime CheckOutDate { get; set; } public int Rooms { get; set; } public iPhoneHotelSearchViewController (IntPtr handle) : base (handle) { } public override void ViewDidLoad () { base.ViewDidLoad (); hud = new MBProgressHUD(this.View); hud.Mode = MBProgressHUDMode.Indeterminate; hud.LabelText = "Loading..."; hud.DetailsLabelText = "Searching Hotel"; this.View.AddSubview(hud); hud.Show(true); } public override void ViewDidAppear (bool animated) { base.ViewDidAppear (animated); SearchHotel (); } public void SearchHotel (){ Hotel hotel = new Hotel(); var distribution = new HotelDistribution[]{new HotelDistribution(){ Adults = 1, Children = 0, ChildrenAges = new int[0]} }; var items = hotel.SearchHotels(Convert.ToDateTime("2013-08-08"),Convert.ToDateTime("2013-09-09 "),"(MIA)", distribution,"","","",0); List&lt;DtoHotelinformation&gt; data = new List&lt;DtoHotelinformation&gt;(); foreach (var item in items) { DtoHotelinformation DtoHotelinformation = new DtoHotelinformation(); DtoHotelinformation.code = item.Code.ToString(); DtoHotelinformation.price = item.Price.ToString(); DtoHotelinformation.title = item.Name.ToString().ToTitleCase(); DtoHotelinformation.subtitle = item.Address.ToString(); DtoHotelinformation.rating = item.Rating.ToString(); DtoHotelinformation.imageUlr = item.ImageUrl; data.Add(DtoHotelinformation); } hud.Hide(true); hud.RemoveFromSuperview(); HotelSearchTable.Source = new HotelTableSource(data.ToArray()); HotelSearchTable.ReloadData(); } partial void GoBack (MonoTouch.Foundation.NSObject sender) { DismissViewController(true, null); } } } </code></pre> <p>Now the table source</p> <pre><code>using System; using MonoTouch.Foundation; using MonoTouch.UIKit; namespace Zurfers.Mobile.iOS { public class HotelTableSource : UITableViewSource { DtoHotelinformation[] tableItems; NSString cellIdentifier = new NSString("TableCell"); public HotelTableSource (DtoHotelinformation[] items) { tableItems = items; } public override int RowsInSection (UITableView tableview, int section) { return tableItems.Length; } public override void RowSelected (UITableView tableView, NSIndexPath indexPath) { //WHAT TO DO HERE tableView.DeselectRow (indexPath, true); // normal iOS behaviour is to remove the blue highlight } public override UITableViewCell GetCell (UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath) { CustomCell cell = tableView.DequeueReusableCell(cellIdentifier) as CustomCell; if (cell == null) cell = new CustomCell(cellIdentifier); cell.UpdateCell(tableItems[indexPath.Row].title, tableItems[indexPath.Row].subtitle, tableItems[indexPath.Row].price, tableItems[indexPath.Row].imageUlr, tableItems[indexPath.Row].rating ); return cell; } public override float GetHeightForRow(UITableView tableView, NSIndexPath indexPath) { return 70; } } } </code></pre> <p>Finally the customcell code:</p> <pre><code>using System; using System.Drawing; using MonoTouch.Foundation; using MonoTouch.UIKit; using MonoTouch.Dialog.Utilities; namespace Zurfers.Mobile.iOS { public class CustomCell : UITableViewCell, IImageUpdated { UILabel headingLabel, subheadingLabel, priceLabel; UIImageView imageService; UIImageView star, star2, star3, star4, star5; public CustomCell (NSString cellId) : base (UITableViewCellStyle.Default, cellId) { imageService = new UIImageView(); star = new UIImageView(); star2 = new UIImageView(); star3 = new UIImageView(); star4 = new UIImageView(); star5 = new UIImageView(); headingLabel = new UILabel(){ Font = UIFont.FromName("Verdana-Bold", 14f), BackgroundColor = UIColor.Clear, TextColor = UIColor.FromRGB(241, 241, 211) }; subheadingLabel = new UILabel(){ Font = UIFont.FromName("Verdana-Bold", 8f), TextColor = UIColor.FromRGB(255, 255, 255), BackgroundColor = UIColor.Clear }; priceLabel = new UILabel(){ Font = UIFont.FromName("Verdana", 14f), TextColor = UIColor.FromRGB(241, 241, 211), BackgroundColor = UIColor.Clear }; AddSubview(imageService); AddSubview(headingLabel); AddSubview(subheadingLabel); AddSubview(priceLabel); AddSubview(star); AddSubview(star2); AddSubview(star3); AddSubview(star4); AddSubview(star5); } public void UpdateCell (string title, string subtitle, string price, string imageUlr, string rating ) { if (imageUlr != null) { var u = new Uri(imageUlr); ImageLoader MyLoader= new ImageLoader(50,50); imageService.Image = MyLoader.RequestImage(u,this); } else { imageService.Image = UIImage.FromFile("generic_no_image_tiny.jpg"); } headingLabel.Text = title; subheadingLabel.Text = subtitle; if (subtitle.Length &gt; 40) { subheadingLabel.LineBreakMode = UILineBreakMode.WordWrap; subheadingLabel.Lines = 0; } switch (rating) { case "T": star.Image = UIImage.FromFile("ZurfersMovil-Stars.png"); star2.Image = UIImage.FromFile("ZurfersMovil-Stars.png"); break; case "S": star.Image = UIImage.FromFile("ZurfersMovil-Stars.png"); star2.Image = UIImage.FromFile("ZurfersMovil-Stars.png"); star3.Image = UIImage.FromFile("ZurfersMovil-Stars.png"); break; case "F": star.Image = UIImage.FromFile("ZurfersMovil-Stars.png"); star2.Image = UIImage.FromFile("ZurfersMovil-Stars.png"); star3.Image = UIImage.FromFile("ZurfersMovil-Stars.png"); star4.Image = UIImage.FromFile("ZurfersMovil-Stars.png"); break; case "L": star.Image = UIImage.FromFile("ZurfersMovil-Stars.png"); star2.Image = UIImage.FromFile("ZurfersMovil-Stars.png"); star3.Image = UIImage.FromFile("ZurfersMovil-Stars.png"); star4.Image = UIImage.FromFile("ZurfersMovil-Stars.png"); star5.Image = UIImage.FromFile("ZurfersMovil-Stars.png"); break; } priceLabel.Text = "USD " + price; priceLabel.Font = UIFont.BoldSystemFontOfSize (16); } public void UpdatedImage (Uri uri) { imageService.Image = ImageLoader.DefaultRequestImage(uri, this); } public override void LayoutSubviews () { base.LayoutSubviews (); imageService.Frame = new RectangleF(10, 10, 50, 33); headingLabel.Frame = new RectangleF(70, 4, 240, 25); subheadingLabel.Frame = new RectangleF(70, 25, 240, 20); priceLabel.Frame = new RectangleF(220, 45, 100, 20); star.Frame = new RectangleF(70, 45, 15, 15); star2.Frame = new RectangleF(85, 45, 15, 15); star3.Frame = new RectangleF(100, 45, 15, 15); star4.Frame = new RectangleF(115, 45, 15, 15); star5.Frame = new RectangleF(130, 45, 15, 15); } } } </code></pre> <p>I want to open another viewcontroller (iPhoneHotelDetailViewController) when the user touch a cell of the table view. But I don not have any idea of how to do this. </p> <p>Could you help me please.</p> <p>Thanks in advance for your help. </p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload