В, казалось бы, бесконечном стремлении узнать больше о развитии iphone, я играл с некоторым исходным кодом, доступным через веб-сайт разработчиков яблок. В конкретном примере я работаю с Core Data Books, найденным here. DetailViewController и AddViewController сделаны программно, потому что для них нет xib-файлов. Мой вопрос заключается в программном добавлении вещей в представление без использования IB. Я хочу поместить UISwitch под UITableView, который содержит подробную информацию о конкретной книге в DetailView. Как мне это сделать? Это то, что я пытался до сих пор:Создание UISwitch Programmatically
В 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 file, но ничего не происходит. Мне просто нужно настроить переключатель и сделать так, чтобы я мог контролировать, что он делает, от моего IBAction, который я настраиваю. Я знаю, что это неловко просто, но я не могу понять. Таким образом, любая помощь будет оценена! Благодаря
Edit 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");
}
Всякий раз, когда переключатель включен, консоль должна читать, и когда его выключения, консоль должна считывать. Правильно? Каждый раз, когда я его перемещаю, он просто повторяется в консоли, выключается. Если оно включено, или если оно выключено, оно отображается только. Что в мире я делаю неправильно? Пожалуйста помоги! Спасибо
Почему бы не использовать IB? И если вы не используете его, то почему вещи объявлены как IBOutlet и IBAction? – gerry3
Ничего себе. Отличная точка. Я действительно хотел бы использовать IB, но, как я уже упоминал, я пытаюсь заставить это работать над представлением, которое не использует IB. Есть ли простой способ добавить xib-файл на экран, который просто заполняет uitableview и показывает ячейки информации? Спасибо – Steve