0

我有一个项目,它有一个与主 ViewController 分开的 xib 的开关。我正在努力做到这一点,以便当您将 UISwitch 切换为 OFF 时,ViewController 中的按钮会被隐藏。我试图在 xib 的 .m 文件中声明 AppDelegate 但仍然没有运气。我的代码是:

- (void)viewDidAppear:(BOOL)animated {

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

}

我究竟做错了什么?我正在尝试做

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

我也在第二个 xib 的 .m 文件中完成了此操作(没有主 ViewController 的那个)

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

但还是什么都没有!所以基本上,我只是想在一个 xib 中声明一个按钮。而已。请帮忙 谢谢!

4

1 回答 1

1

首先,请参阅有关在视图控制器之间传递数据的内容以及有关 UISwitch的内容。

一旦你理解了这一点,就可以像这样设置你的代码——

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以某种方式设置 - 再次,请参阅在视图控制器之间传递数据。然后switchToggled你可以这样做:

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

要记住的重要一点是,您的视图控制器不会神奇地相互了解。即使您像尝试那样使用 AppDelegate 做某事。SecondViewController需要参考FirstViewController

于 2012-05-11T00:59:10.200 回答