ModalViewController保留值

时间:2012-04-21 19:23:21

标签: iphone ios5

从modalViewController(UniversitiesViewController *),我试图在rootViewController中设置一个没有运气的变量。在我的tableview中:didSelectRowAtIndexPath:方法我使用以下代码设置rootViewController(MapsViewController *)selectedIndex属性:

MapsViewController *mapsView = (MapsViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"MapsView"];
mapsView.selectedIndex = [NSNumber numberWithInt:indexPath.row];

[self dismissModalViewControllerAnimated:YES];

当我在MapViewController中打印self.selectedIndex的值时,它始终为0,这不是所选的值。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

执行此操作的正确方法是为UniversitiesViewController创建委托协议。

@protocol UniversitiesViewControllerDelegate <NSObject>
- (void)universitiesViewController:(UniversitiesViewController *)uvc selectedIndex:(NSInteger)index;
@end

并添加

@property (weak, nonatomic) id <UniversitiesViewControllerDelegate> delegate;

到UniversitiesViewController类。

在UniversitiesViewController中的didSelectRow中,调用

[self.delegate universitiesViewController:self selectedIndex:indexPath.row]

然后从MapsViewController,实例化UniversitiesViewController(或者如果在prepareForSegue中使用segues),将委托设置为“self”。并使MapsViewController处理委托方法。

- (void)universitiesViewController:(UniversitiesViewController *)uvc selectedIndex:(NSInteger)index
{
     // do stuff
}