3

我使用下面的代碼調用設置頁面的形式表過的viewController:viewDidAppear和viewWillAppear中沒有得到所謂的在iPad上

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]; 
} 

當設置頁面被調用,並駁回,viewDidAppear和viewWillAppear中是未在iPad上僅在原始頁面上調用。在iPhone上,由於它不是一張表格,所以它完美地工作,而且當我將iPad上的設置頁面作爲常規模態視圖而不是表單時,它們都會被調用。請幫忙。謝謝!

+0

那麼你可以使用委託來完成你的任務,你想在你的viewDidAppear/viewWillAppear中的事。要不看http://useyourloaf.com/blog/2010/5/3/ipad-modal-view-controllers.html瞭解ModalViewController如何工作的完整場景。 –

+0

基本上,如果設置更新任何值,我需要在屏幕上更新這些值,那麼我將如何能夠做到這一點? – Prajoth

+0

閱讀有關KVO .. –

回答

0

您可以在呈現它之前將父視圖控制器的值傳遞給模態視圖(只需添加一個屬性並保留引用)。在完成模態視圖時,調用父級方法(在此方法中,您可以傳遞需要傳遞給父視圖-(void)imDone:(NSObject yourValue)的任何消息,並調用父級dismissViewController:Animated:)上的解僱

您可以使用此方法對iPhone和iPad。

我希望它能幫助。