2012-05-11 2 views
0

У меня есть проект, который имеет переход от xib отдельно от основного ViewController. Я пытаюсь сделать так, чтобы при переключении UISwitch в OFF кнопка в ViewController скрыта. Я попытался объявить AppDelegate в файле .m, но все равно не повезло. Мой код:Объявление объектов от одного xib к другому в Xcode?

- (void)viewDidAppear:(BOOL)animated { 

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 

}

Что я делаю неправильно? Я пытаюсь сделать

if (switch.on) { 
    myButton.hidden = YES; 
    } else { 
    myButton.hidden = NO; 
} 

Я также сделал это в .m файл второго XIb (тот, который не имеет основной ViewController)

#import "AppDelegate.h" 
#import "ViewController.h" 

Но до сих пор ничего! Так что в основном, я просто пытаюсь объявить кнопку в одном xib от другого. ЭТО ОНО. ПОЖАЛУЙСТА, ПОМОГИТЕ! Спасибо!

+0

является вторым xib на той же доске истории? как и в, оба диспетчера представлений отображаются на одном и том же экране раскадровки, или это отдельный файл nib, который не отображается в раскадровке вместе с viewcontroller? – Pochi

+0

@ LuisOscar Я не использую раскадровку. В моей папке Project у меня есть AppDelegate.h, AppDelegate.m, ViewController.xib, ViewnController.h и ViewController.m. В моей второй папке для моего второго xib (я назвал его настройки) settings.h, settings.m и settings.xib, что мне делать. –

ответ

1

Первый, см. this about passing data between view controllers и this about UISwitch.

После того, как вы понимаете, что, настроить ваш код что-то вроде this--

FirstViewController.h:

@interface FirstViewController : UIViewController 
{ 
    ... 
} 
@property IBOutlet UISwitch *theSwitch; 

- (IBAction)switchToggled; 

@end 

SecondViewController.h:

@interface SecondViewController : UIViewController 
{ 
    ... 
} 
@property IBOutlet UIButton *button; 
@property UIViewController *theFirstViewController; 

@end 

Убедитесь, что theFirstViewController получает набор как-то - снова, см. passing data between view controllers. Тогда в switchToggled вы можете сделать это:

- (IBAction)switchToggled 
{ 
    theFirstViewController.button.hidden = YES; 
} 

Важно помнить о том, что ваш вид контроллеры не волшебно знают друг о друге. Даже если вы что-то делаете с AppDelegate, как вы пытались. SecondViewController нуждается в ссылке на FirstViewController.