我使用以下代码在viewController上调用设置页面作为表单:
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
NSString *device = [standardUserDefaults objectForKey:@"Device"];
if ([device isEqualToString:@"iPhone"]) {
Settings_iPhone *screen = [[Settings_iPhone alloc] initWithNibName:nil bundle:nil];
screen.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:screen animated:YES];
[screen release];
}
if ([device isEqualToString:@"iPad"]) {
Settings_iPhone *screen = [[Settings_iPhone alloc] initWithNibName:@"Settings_iPad" bundle:nil];
screen.modalPresentationStyle = UIModalPresentationFormSheet;
screen.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:screen animated:YES];
[screen release];
}
当调用和关闭设置页面时,仅在iPad上的原始页面上不会调用viewDidAppear和viewWillAppear。在iPhone上,由于它不是一个表单,它可以很好地工作,而且当我将iPad上的设置页面称为常规模态视图而不是表单时,它们都会被调用。请帮忙。谢谢!
答案 0 :(得分:0)
您可以在呈现之前将父视图控制器的值传递给模态视图(只需添加属性并保留引用)。在模态视图中完成后,在父项上调用一个方法(在这个中你可以传递任何需要传递给父视图-(void)imDone:(NSObject yourValue)
的方法,并在 Parent <上调用dismiss / strong>(dismissViewController:Animated:
)。
您可以在iPhone和iPad上使用此方法。
我希望它有所帮助。