为了了解更多关于 iphone 开发的信息,我似乎永无止境地尝试了一些可通过苹果开发者网站获得的源代码。我正在使用的特定示例是 Core Data Books,可在此处找到。DetailViewController 和 AddViewController 是以编程方式制作的,因为它们没有任何 xib 文件。我的问题是关于在不使用 IB 的情况下以编程方式将内容添加到视图中。我想在 UITableView 下方放置一个 UISwitch,其中包含有关 DetailView 中特定书籍的详细信息。我该怎么做呢?这是我到目前为止所尝试的:
在 AddViewController 中,我设置了 UISwitch:
@interface AddViewController : DetailViewController {
id <AddViewControllerDelegate> delegate;
UISwitch *onoff;
}
@property (nonatomic, assign) id <AddViewControllerDelegate> delegate;
@property (nonatomic, retain) IBOutlet UISwitch *onoff;
我还设置了一个 IBAction:
- (IBAction)flip:(id)sender;
然后我在 AddViewController.m 文件中合成它,但没有任何反应。我只需要设置开关并制作它,以便我可以通过我设置的 IBAction 控制它的作用。我知道这很简单,但我想不通。所以,任何帮助将不胜感激!谢谢
编辑 1
因此,我按照 viewDidLoad 中的指示实现了代码,如下所示:
- (void)viewDidLoad {
[super viewDidLoad];
UISwitch *onoff = [[UISwitch alloc] initWithFrame: CGRectZero];
[onoff addTarget: self action: @selector(flip:) forControlEvents:UIControlEventValueChanged];
// Set the desired frame location of onoff here
[self.view addSubview: onoff];
它会抛出两个警告,说“onoff”的本地声明隐藏了实例变量。但即使有这些收益,UISwitch 也能很好地弹出,但是当我移动它或使用它时,它看起来并没有完全正常工作。对于我看起来像这样的操作:
- (IBAction)flip:(id)sender {
if (onoff.on) NSLog(@"On");
else NSLog(@"Off");
}
每当开关打开时,控制台应该读取,当它关闭时,控制台应该读取。对?每当我移动它时,它都会在控制台中重复,关闭。如果它打开,或者如果它关闭,它只会炫耀。我到底做错了什么?请帮忙!谢谢