在modalViewController (UniversitiesViewController *)中,我尝试在rootViewController中设置一个变量,但没有成功。在我的表视图中:didSelectRowAtIndexPath:方法我使用以下代码来设置rootViewController (MapsViewController *) selectedIndex属性:
MapsViewController *mapsView = (MapsViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"MapsView"];
mapsView.selectedIndex = [NSNumber numberWithInt:indexPath.row];
[self dismissModalViewControllerAnimated:YES];当我在MapViewController中打印self.selectedIndex的值时,它始终是0,这不是所选值。
提前感谢您的帮助。
发布于 2012-04-22 03:40:56
正确的方法是为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时(或者如果使用segues,在prepareForSegue中)将委托设置为“self”。并让MapsViewController处理委托方法。
- (void)universitiesViewController:(UniversitiesViewController *)uvc selectedIndex:(NSInteger)index
{
// do stuff
}https://stackoverflow.com/questions/10262227
复制相似问题