iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – 如何在表格视图中选择后将数据传递到详细信息视图?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_675_3@概述 我有一个UITableViewController,其中包含从名为userList的NSMutableArray填充的数据.选择特定用户后,它将转到详细视图,并更新NavBar中的标题,但它不会传递数据以更新UIView中的UILabel. - (void)tableView:(UITableView *)tableView didSELEctRowATindexPath:(NSIndexPath
我有@L_197_1@UITableViewController,其中包含从名为userList的NSMutableArray填充的数据.选择特定用户后,它将转到详细视图,并更新NavBar中的标题,但它不会传递数据以更新UIView中的UILabel.

- (void)tableView:(UITableView *)tableView didSELEctRowATindexPath:(NSIndexPath *)indexPath {

[tableView deSELEctRowATindexPath:indexPath animated:NO];

//Attempt at a singleton to pass the data
DetailView *details = [[DetailView alloc] init];
details.usernameLbl = [userList objectATindex:indexPath.row];


DetailView *detailVC = [[DetailView alloc] initWithNibName:nil bundle:nil];

//This line doesn't pass the data
detailVc.usernameLbl.text = [userList objectATindex:indexPath.row];

//This line does update the title in the NavBar
detailVC.navigationItem.title = [userList objectATindex:indexPath.row];

[self.navigationController pushViewController:detailVC animated:YES];

[details release];
[detailVC release];

}

我应该尝试将数据从表视图推送到详细视图,还是让详细视图尝试从表视图提取数据?

DetailView.h实际上是在IB中连接的以下行.

IBOutlet UILabel *userNameLbl

解决方法

在从nib文件加载视图之前,不会实例化userNamelbl.这不会在初始化时立即发生,但会在调用viewDidLoad时发生.

因此,您应该在DetailView中声明@L_197_1@属性来存储您的标题,然后将该值分配给viewDidLoad方法中的userNamelbl.text.

例如,在你的表viewController中:

DetailView *detailVC = [[DetailView alloc] initWithNibName:nil bundle:nil];
detailVc.username = [userList objectATindex: indexPath.row];

并在您的详细视图中控制:

- (void) viewDidLoad
{
   [super viewDidLoad];
   self.userNameLbl.text = self.userName;
}

viewController的navigationItem属性是在初始化viewController时创建的,因此您可以立即分配给navigationItem.title.

SWIFT代码

let detailVC = DetailView(nibName: nil,bundle: nil)
detailVc.username = userList.objectATindex(indexPath.row) as? NSString

class DetailView: UIViewController {

    @IBOutlet var userNameLbl: UILabel
    var userName:NSString?

    override func viewDidLoad() {
        super.viewDidLoad()
        self.userNameLbl.text = self.userName
    }    
}

大佬总结

以上是大佬教程为你收集整理的iphone – 如何在表格视图中选择后将数据传递到详细信息视图?全部内容,希望文章能够帮你解决iphone – 如何在表格视图中选择后将数据传递到详细信息视图?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。