表的委托可以使用两个方法确定用户是否选择了特定的行。一个方法在一行被突出显示之前调用,并且可以用于阻止选中此行,甚至改变被选中的行。让我们来实现这个方法,并指定第一行是不能被选中的。将以下方法添加到Simple_TableViewController.m的尾部,位于在@end声明之前:
这个方法获取传递过来的indexPath,它用于表示哪项将被选中。我们的代码着眼于哪一行将被选中。如果这一行是第一行,其索引将始终为零,那么它将返回nil,表示实际上没有行被选中。否则,它返回indexPath,表示选择可以继续进行。
在编译和运行应用程序之前,我们还要实现委托方法,在一行被选中之后调用该方法,通常它也是实际处理选择的地方。用户选中一行时,可以在这里做任何操作。在下一章中,我们将使用此方法处理更深入的问题。本章将只使用此方法抛出一个警告以显示某一行被选中了。将下面的方法添加到Simpe_TableViewController.m的尾部,位于@end声明之前。
添加此方法之后,编译并运行应用程序。看一下你是否能够选中第一行(应该不能),然后选择其他行。被选中的行应该会突出显示,然后弹出警告通知你选择的是哪一行(参见图8-10)。