首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用prepareForSegue从标签中获取标记/ id

使用prepareForSegue从标签中获取标记/ id
EN

Stack Overflow用户
提问于 2014-02-23 02:07:44
回答 1查看 93关注 0票数 0

我有一组UILabel的,并希望将所选项目的id放在标签中。就像这样:

代码语言:javascript
复制
UILabel *miII = [[UILabel alloc] initWithFrame:CGRectMake(530, 0, 25, 25)];
miII.tag=item.id;

下面我可以在其中设置destinationViewController的destinationViewController属性。我遇到的问题是如何从UILabel访问标记?还是有更好的方法来做这件事?我已经在评论中包含了我的经验,并且不使用UITableView。

代码语言:javascript
复制
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSLog(@"prepareForSegue: %@", segue.identifier);
    ItemDetailViewController *myVC = [segue destinationViewController];

    //[myVC setItemId:12]; //  <-- hard-coding this works
    [myVC setItemId:sender.view.tag];   // this doesn't work

}

- (void)tapRecognized:(UIGestureRecognizer *)sender
{
    NSLog(@"that tap was recognized with %d", sender.view.tag); // <-- this works
    [self performSegueWithIdentifier: @"ItemSegue" sender: self];


}

thx预先

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-24 03:40:26

sol很简单,但基于其他Q和A的,有点神秘。我做了以下几点:

代码语言:javascript
复制
@interface ListViewController ()
{
@private

int _itemId;
}

.....


-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // NSLog(@"prepareForSegue: %@", segue.identifier);
    // NSLog(@"prepareForSegue: %@", sender);

    ItemDetailViewController *myVC = [segue destinationViewController];
    [myVC setItemId:_itemId];  // obviously need property for itemId on ItemDetailViewController

}

- (void)tapRecognized:(id)sender
{
    NSLog(@"that tap was recognized with %d", [(UIGestureRecognizer *)sender view].tag);
    _itemId=[(UIGestureRecognizer *)sender view].tag;

在ItemDetailiViewController.h。

代码语言:javascript
复制
@interface ItemDetailViewController : UIViewController

@property (nonatomic) int itemId;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21963261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档