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.

Я надеюсь, что это помогает.