【发布时间】:2016-11-17 06:46:54
【问题描述】:
我已经为我的 TableView 创建了自定义 TableCell。在自定义单元格中,我有Button。所以我想在点击按钮时打开新的 ViewController。然后在上面发送数据。那么如何在自定义 TableCell 中创建事件以打开新的 ViewController。
我是这样创造的,这样对吗?
我的自定义单元:
public partial class CaseHistotyTableCell : UITableViewCell
{
public static readonly NSString Key = new NSString("CaseHistotyTableCell");
public static readonly UINib Nib;
static CaseHistotyTableCell()
{
Nib = UINib.FromName("CaseHistotyTableCell", NSBundle.MainBundle);
}
protected CaseHistotyTableCell(IntPtr handle) : base(handle)
{
// Note: this .ctor should not contain any initialization logic.
}
public static CaseHistotyTableCell Create()
{
return (CaseHistotyTableCell)Nib.Instantiate(null, null)[0];
}
internal void BindData(string hospitalLabel, string addressLabel, string drLabel, string patientLabel)
{
this.lbl_hospitalName.Text = hospitalLabel;
this.lbl_address.Text = addressLabel;
this.lbl_drName.Text = drLabel;
this.lbl_patientName.Text = patientLabel;
this.lbl_address.TextColor = UIColor.Clear.FromHexString("#000000", 0.54f);
this.lbl_patientName.TextColor = UIColor.Clear.FromHexString("#000000", 0.54f);
this.lbl_hospitalName.TextColor = UIColor.Clear.FromHexString("#000000", 0.87f);
this.lbl_drName.TextColor = UIColor.Clear.FromHexString("#000000", 0.87f);
this.btn_createAppointment.SetTitleColor(UIColor.Clear.FromHexString("#0072BA",1.0f), UIControlState.Normal);
this.btn_viewDetail.SetTitleColor(UIColor.Clear.FromHexString("#0072BA", 1.0f), UIControlState.Normal);
this.btn_viewDetail.TouchUpInside += (sender, e) =>
{
};
}
public override CGRect Frame
{
get
{
return base.Frame;
}
set
{
value.Y += 4;
value.Height -= 2 * 4;
base.Frame = value;
}
}
}
源类:
public class CaseHistorySourceClass : UITableViewSource
{
private List<CaseSearchItem> caseSearchItems;
public CaseSearchItem caseSearchItem;
public CaseHistorySourceClass(List<CaseSearchItem> caseSearchItems)
{
this.caseSearchItems = caseSearchItems;
}
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
CaseHistoryTableCell cell = tableView.DequeueReusableCell(CaseHistoryTableCell.Key) as CaseHistoryTableCell ?? CaseHistoryTableCell.Create();
var item = caseSearchItems[indexPath.Row];
cell.BindData(item.Organization, item.Address, item.Doctor, item.UserName);
cell.Layer.MasksToBounds = false;
cell.Layer.CornerRadius = 10.0f;
cell.BackgroundColor = UIColor.White;
return cell;
}
public override nint RowsInSection(UITableView tableview, nint section)
{
return caseSearchItems.Count;
}
}
我是 iOS 和 Xamarin 的新手。感谢您的帮助。
【问题讨论】:
-
对于自定义单元格,您正在呈现
TableCell正确,当单击时我假设我应该在您的表格单元格中调用button clicked方法。尝试放置一个断点并查看何时单击它应该调用扩展 TabbleCell 的视图
标签: ios uitableview xamarin xamarin.ios