iPhone Dev - 从我访问过的最后一个视图中需要一个id

时间:2010-08-05 10:19:35

标签: iphone objective-c uinavigationcontroller

我需要构建一个代码来跟踪我在订单视图中使用的ID,但现在我无法让它工作,有人可以将示例代码粘贴给我吗?

我需要来自view1的TagID - > view2,所以当我登陆view2时,我可以获得有关它的信息并发送给用户屏幕。

我在这里有点帮助:0)

1 个答案:

答案 0 :(得分:1)

我认为你在这里说的是你在应用程序中从一个UIView转移到另一个UIView,你需要某种方法将一个变量从view1“传递”到view2。

这是iPhone应用程序设计的常见用例,有一些方法。这是我认为最简单的方法,它将适用于任何对象(整数,NSManagedObjects,无论如何):在第二个视图中创建一个iVar,并在使其可见之前将其设置为您想要跟踪的值。

在ViewTwoController中设置如下:

ViewTwoController.h:
====================
@interface ViewTwoController : UIViewController {
    NSUInteger *tagID;
}
@property (nonatomic, assign) NSUInteger *tagID;
@end

ViewTwoController.m
===================
@synthesize tagID;

所以此时你的ViewTwoController有一个iVar for tagID。现在我们要从View One做的就是创建ViewTwoController,为tagID赋值,然后显示第二个视图。这可以在按钮按下选择器中完成,或者从UITableView行完成:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    ViewTwoController *viewTwoController = [[ViewTwoController alloc] init];
    viewTwoController.tagID = self.tagID;  // !! Here is where you "pass" the value
    [self.navigationController pushViewController:viewTwoController animated:YES];
}

上面的代码是:(1)创建一个新的ViewTwoController,(2)将tagID的值赋给ViewTwoController中的tagID iVar,然后(3)将视图二呈现给用户。因此,在ViewTwoController代码中,您可以使用self.tagID访问tagID。

希望这有帮助!