如何在选择tableviewcell时将字符串传递给被推送的视图控制器。
我应该在视图控制器中创建自定义init方法吗?例如[[myvc alloc]initWithURL:...]
设置房产?例如[myvc setURL:...]
或myvc.url = ...
或者只是创建一个自定义方法? [myvc setLoadingURL:...]
答案 0 :(得分:0)
任何这些解决方案都是可以接受的。我想如果你只是传递一个字符串,那么一个属性就足够了。我一直在为更复杂的对象保存init方法。这是我最近为“高分”表做的一个,当你点击一行时,在堆栈上显示了一个配置文件视图:
ProfileController *profileController = [[ProfileController alloc] initWithNibName:@"ProfileController" bundle:nil];
// pass the controller the player object
[profileController showProfile:player];
// show it by pusing it on the stack
[self pushViewController:profileController animated:YES];
[profileController release];
我可以创建另一个初始化器,如
ProfileController *profileController = [[ProfileController alloc] initWithPlayer:player];
代替。这看起来更优雅,但正如我所说,你的任何方法都没问题。
答案 1 :(得分:0)
我们实际上已经完成了这两种方式(使用init和属性)。我发现该属性是最好的方法,因为如果ViewController是由InterfaceBuilder创建的,则可能无法调用自定义init方法。如果你想使用它,你总是被迫设置它。
仅0.02美元,
-Dan