- (voID)tableVIEw:(UItableVIEw *)tableVIEw dIDSelectRowAtIndexPath:(NSIndexPath *)indexPath {[tableVIEw deselectRowAtIndexPath:indexPath animated:NO];//Attempt at a singleton to pass the dataDetailVIEw *details = [[DetailVIEw alloc] init];details.usernameLbl = [userList objectAtIndex:indexPath.row];DetailVIEw *detailVC = [[DetailVIEw alloc] initWithNibname:nil bundle:nil];//This line doesn't pass the datadetailVC.usernameLbl.text = [userList objectAtIndex:indexPath.row];//This line does update the Title in the NavbardetailVC.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中声明一个属性来存储您的标题,然后将该值分配给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 – 如何在表格视图中选择后将数据传递到详细信息视图?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)