将对象传递到不同的视图

时间:2011-07-03 03:03:17

标签: objective-c ios

我有一个对象名称usr。我想更改视图,我想将其传递给新视图。我怎样才能传递这个对象?

RVUser *usr = [[RVUser alloc] init];

UIViewController* exampleController = [[exampleClass alloc] initWithNibName:@"RVListsController" bundle:nil];
if (exampleController) {
    exampleController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:exampleController animated:YES];
        if (exampleController.title == nil) {
            NSLog(@"enters");
            //exampleController.title = @"Revistas Destacadas";
        }
        [exampleController release];
    }   
}

3 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是在RVUser上声明类型为exampleClass的属性,并在创建exampleController后将其分配给该属性。

答案 1 :(得分:0)

您应该在使用[self presentModalViewController:exampleController animated:YES];

之前设置属性
RVUser *usr = [[RVUser alloc] init];

UIViewController* exampleController = [[exampleClass alloc] initWithNibName:@"RVListsController" bundle:nil];

if (exampleController) {
    exampleController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

    if (exampleController.title == nil) {
        NSLog(@"enters");
        //exampleController.title = @"Revistas Destacadas";
    }

    //TODO: Set exampleController properties, declared as @property (nonatomic, release) RVUser *passedUsr;
    //exampleController.passedUsr = usr;
    //[usr release];

    [self presentModalViewController:exampleController animated:YES];
}

[exampleController release];

答案 2 :(得分:0)

您需要将ExampleController的实例声明为自定义UIViewController而不是UIViewController - 如果您调用不退出的方法/属性,这将为您提供代码完成和编译时警告。然后,更改exampleClass的定义(也请阅读命名约定指南)以获得RVUser类型的属性,如下所示:

@property (nonatomic, retain) RVUser *user;

在实施文件中:

@synthesize user;

现在,您可以在显示之前将对象传递给该控制器:

ExampleController.user = usr;

你真的应该阅读Apple开发者网站上的介绍指南,他们会介绍这个以及你想要编写iOS应用程序时需要知道的更多内容。