gpt4 book ai didi

iphone - 如何在另一个 UIView Controller 中显示复杂的 UIViewController?

转载 作者:行者123 更新时间:2023-12-01 17:44:03 26 4
gpt4 key购买 nike

好的,情况就是这样。我目前有一个名为 MainViewController 的 View Controller 它有一个带有许多不同单元格的 UITableView。当我单击一个单元格时,我希望该单元格展开(增加高度)并显示一些“附加信息”。问题是,这个附加信息非常复杂,可以包含 UILabel、其他 UITableViews、UIWebViews 和 UIImageViews。此外,这个“附加数据”需要相当多的计算才能确定要显示的确切内容(即 UILabel 所说的内容,UIImageView 的大小)。因此,由于这种“附加信息”的复杂性,我不知道如何设计我的程序。

“附加信息”需要大量代码,因此我不想只是将该代码放入 MainViewController.此外,如果有某种方法可以使用 Interface Builder 以图形方式而不是以编程方式设计这些“附加信息” View ,那就太好了。

Currently I have each set of additional information as its own separate UIViewController (thus allowing me to have separate classes for the data and allowing me to use interface builder) and I just segue to a new screen when a cell is selected.但是,我不想切换到新屏幕;我希望此 UIView Controller 显示的所有数据都显示在 MainViewController 中.最好的方法是什么?

总之,我目前有一个 UIViewController 连接到另一个 UIViewController;但是,我希望第二个 UIViewController 的内容显示在第一个中。如果可能的话,我想使用某种 Interface Builder 并将第二个 UIViewController 的逻辑分离到另一个类中。

细节:
~ 我只为 iOS 5 开发,我正在使用 ARC。
~ 我以前从未为 iOS 4 或更低版本开发过,也从未使用过 nib 文件,但如果需要我愿意学习。简单的示例代码会很有帮助。
~ 谢谢!

最佳答案

与 SmartWork 相同的观点。

您应该使用其 xib 文件创建自定义 UITableViewCell 类,并将 UITableViewCell 作为主 xib View

在您的 tableView 数据源中,您可以将其导入如下:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"MyViewCell";
MyViewCell *cell = (MyViewCell *)[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"MyViewCell" owner:nil options:nil];
for (id currentObject in topLevelObjects) {
if ([currentObject isKindOfClass:[UITableViewCell class]]) {
cell = (MyViewCell *)currentObject;
break;
}
}
}
[self configureCell:cell atIndexPath:indexPath]; // your own function to customize your cell.
return cell;
}

然后,在单元格xib中,您可以设置单元格的最大高度,并在UITableViewDelegate类中决定有效高度。

关于iphone - 如何在另一个 UIView Controller 中显示复杂的 UIViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11226711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com