С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/12: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Jul6
0 / 0 / 0
Регистрация: 29.05.2013
Сообщений: 9
1

presentViewController не работает

29.05.2013, 17:28. Просмотров 2203. Ответов 18
Метки нет (Все метки)

Здравствуйте!
Я абсолютный новичок в этой области, сейчас учусь писать приложения по книге Д.Пайлон, Т.Пайлон "Программируем для iPhone и iPad". Текущее приложение Drink Mixer рушится при попытке добавить новый коктейль в список имеющихся, то есть при нажатии на кнопку "+". Не срабатывает метод presentViewController.
Проблема в том, что в книге используется более старая версия iOS. У меня стоит последняя, и в ней не работает половина методов из книги. Решение некоторых проблем удавалось находить на форуме, но про последнюю ничего не нашла. Помогите, пожалуйста!
Заранее спасибо.

в книге:
Код
[self presentModalViewController:addViewController animated:YES];
у меня:
Код
[self presentViewController:addViewController animated:YES completion:nil];
Простая замена одного метода другим не сработала.. ((
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2013, 17:28
Ответы с готовыми решениями:

Мышь работает через раз, то есть запустил ОС - мышь не работает, перезагрузил - мышь работает
Установлена Windows 7 со всеми последними обновлениями. Все всегда замечательно...

Windows 7, не работает часть служб, не работает сеть, восстановление системы не помогает
Приветствую коллеги! Сам админю уже лет 10, не случалось ситуации еще что гугл...

При включении компа у меня не работает монитор, но нормально работает ТВ-выход
Уже несколько дней рву волосы на голове.... Такая проблемка: при включении...

В Windows Forms некоректно работает метод, хотя в консоли работает правильно
//Данный метод должен заменять все элементы в массиве на 1, после найменьшего....

Не работает скомпилированный EXE файл хотя в самой среде игра работает
Я почти закончил разработку своей игры на Unity2D но после запуска...

18
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
29.05.2013, 17:36 2
а ты можешь показать весь код метода который срабатывает при нажатии на +.
И что вообще происходит приложение крашится или просто не показывается новый контроллер?
0
Jul6
0 / 0 / 0
Регистрация: 29.05.2013
Сообщений: 9
29.05.2013, 19:49  [ТС] 3
Я же прикрепляла проект ((
0
Вложения
Тип файла: zip DrinkMixer.zip (52.3 Кб, 10 просмотров)
Jul6
0 / 0 / 0
Регистрация: 29.05.2013
Сообщений: 9
29.05.2013, 19:53  [ТС] 4
При нажатии на + приложение падает..
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
29.05.2013, 21:43 5
У тебя пишет ошибку Could not load NIB in bundle:.... ?
Ты пишешь:
Objective-C
1
AddDrinkViewController *addViewController = [[AddDrinkViewController alloc] initWithNibName:@"AddDetailViewController" bundle:nil];
Хотя nib-a этого класса у тебя нету или создай ниб файл или просто напиши:
Objective-C
1
AddDrinkViewController *addViewController = [[AddDrinkViewController alloc] initWithNibName:nil bundle:nil];
1
Jul6
0 / 0 / 0
Регистрация: 29.05.2013
Сообщений: 9
29.05.2013, 23:27  [ТС] 6
Да, ясно. Но дело в том, что я пытаюсь создать модальное представление поверх текущего - на основе TASDetailViewController. То есть новый контроллер - AddDrinkViewController - был намеренно создан без xib файла, чтобы мы могли воспользоваться представлением TASDetailViewController. А вот этого как раз и не происходит.
Если поставить nil -
Objective-C
1
AddDrinkViewController *addViewController = [[AddDrinkViewController alloc] initWithNibName:nil bundle:nil];
то программа больше не падает, а просто появляется черное окно, а нужно чтобы появилось пустое представление TASDetailViewController.
Что в этом случае делать?
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
29.05.2013, 23:31 7
Цитата Сообщение от Jul6 Посмотреть сообщение
нужно чтобы появилось пустое представление TASDetailViewController.
я не пойму а почему собственно этот класс и не загрузить? зачем нужен "левый" класс если в итоге мы хотим что бы вылез TASDetailViewController.
0
Jul6
0 / 0 / 0
Регистрация: 29.05.2013
Сообщений: 9
29.05.2013, 23:42  [ТС] 8
Не знаю. В книге они создали новый класс для добавления записей... Значит по-другому нельзя было сделать, наверное..
И как же теперь быть?
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
29.05.2013, 23:50 9
можешь просто вместо AddDrinkViewController попробовать загрузить TASDetailViewController и дальше читать и смотреть что из этого выйдет.

Просто я книгу эту не читал и ход мыслей автора не знаю, может в дальнейшем он все описывает что зачем и для чего
0
Jul6
0 / 0 / 0
Регистрация: 29.05.2013
Сообщений: 9
29.05.2013, 23:58  [ТС] 10
Попробовала. Хотя без нового класса дальше по книге работать уже не получится..
Программа рушится со словами:
[UIViewController _loadViewFromNibNamed:budle:] loaded the "TASDetailViewController" nib but the view outlet was not set.
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
30.05.2013, 00:02 11
это когда ты tasDetailViewController грузишь крашиться прога? тогда как ты его грузишь?
И кстати, а в книге storyboard используется или xib?
0
Jul6
0 / 0 / 0
Регистрация: 29.05.2013
Сообщений: 9
30.05.2013, 00:11  [ТС] 12
В книге используется xib, в том то и дело.
А как это все организовать со storyboard я не понимаю...

А гружу вот так:
Objective-C
1
2
TASDetailViewController *addViewController = [[TASDetailViewController alloc] initWithNibName:@"TASDetailViewController" bundle:nil];
[self presentViewController:addViewController animated:YES completion:nil];
или так:
Objective-C
1
2
TASDetailViewController *addViewController = [[TASDetailViewController alloc] init];
[self presentViewController:addViewController animated:YES completion:nil];
результат один.

Могу загрузить сюда книжку
0
Xavier
in god we trust
74 / 74 / 8
Регистрация: 20.04.2012
Сообщений: 201
30.05.2013, 00:16 13
А почему бы xib и у себя не использовать?
Ну естественно будет сыпаться
Objective-C
1
2
3
UIStoryboard*  story = [UIStoryboard storyboardWithName:@"MainStoryboard"
                                                  bundle:nil];
    TASDetailViewController *addViewController = [story instantiateViewControllerWithIdentifier:@"addViewControllerID"];
и не забудь storyboard id тотже написать в самом storyboard файле для TASDetailViewController.

Не по теме:

ох уж этот stroryboard

1
Jul6
0 / 0 / 0
Регистрация: 29.05.2013
Сообщений: 9
30.05.2013, 00:41  [ТС] 14
Пока заработало
Спасибо!
Правда теперь, боюсь, сталкнусь с непреодолимыми трудностями дальше из-за этой путаницы с xib-ами и storyboard...
0
voldemar2201
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 4
08.06.2013, 17:01 15
Тоже начал изучение Objective-C с этой книги, как я понял что в новой версии можно использовать и старые методы, это просто рекомендация, по этому вылазиет только предупреждения. И данное приложение будет совместимо только с iOS 6.0 и выше. Я сделал это задание и без stroyboard, если интересует могу позже прикрепить свой проект. Заткнулся на переделке приложения с iPhone на iPad...
0
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
12.09.2013, 12:46 16
Цитата Сообщение от Jul6 Посмотреть сообщение
Попробовала. Хотя без нового класса дальше по книге работать уже не получится..
Программа рушится со словами:
[UIViewController _loadViewFromNibNamed:budle:] loaded the "TASDetailViewController" nib but the view outlet was not set.
Цитата Сообщение от Jul6 Посмотреть сообщение
Пока заработало
Спасибо!
Правда теперь, боюсь, сталкнусь с непреодолимыми трудностями дальше из-за этой путаницы с xib-ами и storyboard...
Трудности тут были весьма преодолимые, по всей видимости, просто не выставили outlet главной вьюшке контроллера в ксибе.
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
13.09.2013, 07:35 17
Jul6, вот ну не понимаю я такого, и все тут. В книге xib, у вас storyboard, и вы еще чему-то удивляетесь...
А делать "как в книге" не позволяет религия, или "создание нового проекта" в Xcode?
0
Jul6
0 / 0 / 0
Регистрация: 29.05.2013
Сообщений: 9
13.09.2013, 12:07  [ТС] 18
zulkis, да я ничему не удивляюсь )) Делать "как в книге" не интересно - это проще простого. Я же учусь и дальнейшем хотелось бы все-таки работать со storyboard, поэтому и хотела переложить задание этой книги на новый лад. Но, если честно, не получилось
0
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
13.09.2013, 12:53 19
Прежде, чем перекладывать, надо:
1. Убедиться, что то, что в книжке написано, - правда
2. Убедиться, что сумели хотя бы воспроизвести по приведенным шагам (Учат не только сказом, но и показом)
3. Понять а почему так
4. Понемножку изменять под свои нужды

Цитата Сообщение от Jul6 Посмотреть сообщение
Делать "как в книге" не интересно - это проще простого
Ой не всегда. То в книге не дописали, то сам не доглядел, то интерфейс поменялся. В общем я бы не советовал особенно торопиться при изучении. Сториборды от xib не особо и отличаются. А вот поди ж ты - проблемы откуда-то...
0
13.09.2013, 12:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2013, 12:53

SelText в textBox'e отчёта не работает или работает не так как в форме?
Пробовал всяко-разно выудить выделенный текст - не выходит. Пишет: "Введенное...

Подключение библиотеки DLL C++: работает на примере консоли и не работает в WinForms App
Здравствуйте! Помогите начинающему бедному студенту!! Осваиваю С++. В книге...

Swf не работает, а в тестовом режиме в самом flash и формате exe работает
Доброго времени суток. Такая проблема: есть рабочий код обмена данными с php...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru