iPad и UipickView (или uiSitpickeview)
-
02-10-2019 - |
Вопрос
У кого-нибудь повезло с помощью Uipicker в 3,2 SDK? Я в середине портирования приложения для iPhone на iPad, и это то, что я не могу работать. Я пробовал...
Отображение листа действия, добавьте сборщику в виде подпорта и отображения его.
-Креация, что над листом действий, что делает его видом на общий просмотрокнатор, добавив, что VC к Uipopover
- Просвещайте только средство соискания обзорный ViewController, добавляя, что VC к Uipopover
С листом действия он даже не пытается его нарисовать. В представлении POPOVER он пытается нарисовать, но не получается правильно.
Просто хотел проверить, если кто-то достиг этого и, если так, как.
Спасибо всем!
Решение
Я автор учебника, упомянутого выше. Для Picker для работы в POPOVER и добавьте выбранное значение в текстовое поле в основном представлении, необходимое для использования протоколов. Я создал образец проекта, чтобы показать это. Я буду создавать учебник на этом в ближайшее время.
Другие советы
Я только что боролся с этим около 24 часов и получил его на работу, следуя в этом руководстве и везде, где он упоминает свое UiableView, просто подумайте о своем UipickView и замените соответствующую информацию.
Мэтью Кейси - Учебник: Введение в поп-над контролем на iPad
Короче говоря, на iPad единственный способ показать пикур, находится внутри контроля покрывания. Совместное использование данных между контроллером просмотра контента POPOVER (контроллер просмотра View Picker View) и контроллер представления основного приложения - это бит, который я не мог выяснить. (Т.е. получение метода «Didelectrow» Picker, чтобы повлиять на объект в вашем контроллере главного просмотра, скажите UITExtField или Uibutton.) Это обрабатывается путем создания пользовательского протокола для пересылки метода «Didelectrow» для контроллера основного просмотра.
Я ни в коем случае я не являюсь экспертом в этом материале, поэтому я пошел шаг за шагом с этим руководством, и он работал в конце. Прежде чем я нашел этот учебник, который я был потерян. (Я также портирую по приложению iPhone в iPad.)
Когда вы хотите поделиться данными между контроллерами просмотра ... решение является NsnotificationCenter.
Я знаю, что это не отвечает на вопрос в целом, но если я хочу делиться данными между контроллерами просмотра: в контроллере представления отправки
NSMutableDictionary *toshare = [[NSMutabledictionary alloc] init];
[toshare setValue:valueToShare forKey:@"shared"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"imSharing" withObject:nil userInfo:(NSDictionary *)toshare];
На приемном контроллере представления: место в ViewDidload
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(imSharing:) name:@"imSharing" object:nil];
Затем добавьте эту функцию:
-(void)imSharing:(NSNotification *)notification {
NSDictionary *dictionary = [notification userInfo];
//do something with [dictionary objectForKey:@"shared"];
dictionary = nil;
}
Это работает для совместного использования данных между 2 контроллерами просмотра ... Ну, небольшие объемы данных в любом случае.
В противном случае смотрите здесь больше о Обмен данными между контроллерами просмотра
Вы используете интерфейс Builder? Намного проще создать новый подкласс UIViewController в Xcode с файлом Nib, а затем перетащите в Uipicker. Тогда вам нужно представить контроллер представления в попосте. Листы действий не предназначены, чтобы иметь субпроизводитеки, поэтому не делайте этого.
Я сделал это: увидеть третий скриншот в C64 краска.
Спасибо за ответы всех. Поэтому, хотя я не могу сказать, какова была начальная проблема, я начал проблему с нуля и получил ее на работу. Я сделал совершенно новые контроллеры просмотра и отобразил их в положении, и он работал хорошо. Кажется, одним из более жестких точек изготовления универсального приложения.
UipickView будет работать, если вы создадите его на iPad, если вы создадите это так:
UIPickerView* pickerView = [[UIPickerView alloc]initWithFrame: CGRectMake (someX, someY, 320, 216)];
Некоторые другие размеры кажутся работать. Но CGrectzero не работает на iPad - даже если он работает на iPhone.