开发者

Passing variables (or similar) to newly loaded view

I am loading new views for a small iphone app, and was wondering how to pass details from one to another? I am loading开发者_开发知识库 a tableview full of data from and xml file, then once clicked a new view is brought in via:

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

    SubInfoViewController *subcontroller = [[SubInfoViewController alloc] initWithNibName:@"SubInfoView" bundle:nil];
    [self presentModalViewController:subcontroller animated:YES];
    [subcontroller release];

}

Next step would be to tell the newly loaded view which row had just been loaded? Any idea, thoughts more than welcome, and please be gentle big newbie...


I typically create my own init method to do things like this. I think it would likely be better to pass in the corresponding "model" object represented by the tableView row, rather than the row number itself, like this:

In SubInfoViewController.h

@interface SubInfoViewController : UIViewController {
    YourObject *yourObject;
}

@property (nonatomic, retain) YourObject *yourObject;

Then in SubInfoViewController.m:

- (SubInfoViewController*)initWithYourObject:(YourObject*)anObject {
   if((self = [super initWithNibName@"SubInfoView" bundle:nil])) {
       self.yourObject = anObject;
   }
   return self;
}

You'd create and present it this way:

// assuming you've got an array storing objects represented 
// in the tableView called objectArray

SubInfoViewController *vc = [[SubInfoViewController alloc] initWithYourObject:[objectArray objectAtIndex:indexPath.row]];
[self presentModalViewController:vc animated:YES];
[vc release];

This could be adapted pretty easily to allow you to pass in any type of object or value (such as a row number if you still want to do that).


Add an instance variable to your view controller and declare a property corresponding to it, so after you alloc, init it, set it like subcontroller.foo = Blah Blah.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜