我们可以使用initWithNibName重用具有不同视图的相同.xib文件吗?

时间:2011-09-21 09:39:09

标签: iphone objective-c ios nib init

我有一个UITableView,其中包含8个项目(静态)。现在当我点击8个单元格中的每一个时,每个单元格包含1个单独的控件。

例如:

  1. 单击单元格1:使用UIPickerView的新视图。

  2. 单击单元格2:使用UIDatePicker的另一个视图

  3. 单击单元格3:使用UITextField再创建一个视图。 。 ......等等。

  4. 我是否可以使用仅包含所有控件的.xib 文件,但是当我单击该单元格时,只有该控件可见且所有其他控件都被隐藏。

    此外,我希望那些控件值应返回Table Cell的detailText。

    如何重用一个.xib文件?我可以使用不同的笔尖名称调用xib文件并检入initwithnibname方法??

    请你能给我一个很好的例子......

2 个答案:

答案 0 :(得分:0)

基本上我找到的唯一方法是设置条件语句,其中只显示特定条件下的某些控件,并隐藏其他控件并在其他条件下类似。

我认为这是您可以根据同一XIB中的单元格选择显示不同控件的唯一方法。

希望这会对你有所帮助。

修改

您可以使用标志(在应用程序委托中声明)并根据所选单元格在didSelectRowAtIndexPath方法中设置标志。

现在在PickerView的viewDidLoad上,您可以检查相同的标志,它可以让您知道单击了哪个单元格。

希望这会对你有所帮助。

修改-1

您可以使用NSUserDefaults,如图所示..

对于Cell-1

[[NSUserDefaults standardUserDefaults] setValue:@"Cell-1" forKey:@"CELLSELECTED"];

对于Cell-2:

[[NSUserDefaults standardUserDefaults] setValue:@"Cell-2" forKey:@"CELLSELECTED"];

对于Cell-3:

[[NSUserDefaults standardUserDefaults] setValue:@"Cell-3" forKey:@"CELLSELECTED"];

依旧......

希望这对你有所帮助

答案 1 :(得分:0)

我有一个在Prefs屏幕上使用通用nib文件的好主意,所以我有一个“开关笔尖”,一个“文本字段笔尖”和一个“文本笔尖”。我将控件分配给cellForRowAtIndexPath以编程方式查看控制器属性。然而,由于一些神秘的原因,这最终无法运作。

我最终为每个细胞设计了一个自定义笔尖。有用。然后,在cellForRowAtIndexPath我必须确定加载了哪个单元格,将控件初始化为正确的值。