我想有一个静态的分组uitableview,在每个单元格上,用户单击它会将他带到另一个user控制器,在那里他将需要通过xcode提供的各种工具提供信息。下面是一个例子:
第一个单元格将把他带到一个vc,在那里用户将输入姓名、中间名和姓氏。
第二个单元格将允许用户选择日期和时间。第三个单元格将允许用户输入地址,依此类推,我将有大约6-8个单元格
解决这个问题的唯一方法就是拥有大量的视图控制器@storyboard/nib文件吗?或者有一种方法可以使用一个视图控制器来完成这一切,该视图控制器将根据您选择的单元格而变化?我之所以问这个问题,是因为我想把性能考虑在内,让应用程序更具动态性。
发布于 2013-08-13 01:05:13
您可以使用相同的Xib,并可以根据您的要求更改标签的文本。一旦你选择了一个单元格,根据你选择的单元格,你可以传递一个整数,并且在第二个控制器的viewDidLoad中,你可以隐藏不需要的UI元素。
如果你使用的是StoryBoard,你可以像这样使用:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[self performSegueWithIdentifier: @"MySegue" sender: self];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"MySegue"]){
StoryDetails *controller = (StoryDetails *)segue.destinationViewController;
controller.dataModel= storyModel; //pass the data here
}在Xib的情况下:
YourViewController *controller=[[YourViewController alloc]initWithNibName:@"ViewControllerName" bundle:nil];
controller.dataModel= storyModel; //pass the data here
[self presentViewController:viewController animated:YES completion:nil];发布于 2013-08-13 01:39:06
在您的例子中,我更倾向于通过函数分离出所有不同的viewControllers。如果你使用标签来以编程方式隐藏这个函数所需要/不需要的UIControls,你将会有很多代码的味道。随着您添加更多的函数,xib和.h/.m将变得更加复杂。
//tableViewDidSelectRow...
if (indexPath.row == 0) {
ViewControllerName *nameView = ...
//display this view...
} else if (indexPath.row == 1) {
ViewControllerDate *dateView = ...
//display this view...
} else if (indexPath.row == 2) {
ViewControllerAddress *addressView = ...
//etc etc etc
}https://stackoverflow.com/questions/18192384
复制相似问题