![]() |
|
|
![]()
|
|
| fris |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 15.2.2012 Репутация: нет Всего: нет |
Приветствую.
Возникла необходимость попробовать написать прожку для iphone. Уровень знаний в данной области нулевой. Mac mini, xcode 4.2.1. Нужно для начала на эмуляторе сварганить rss читалку. В инете в примерах по подобной задаче написано что нужно создать проект Navigation-based Application. Но почему то при выборе шаблонов Navigation-based Application нету. Вопрос : какой другой взять шаблон наиболее приближенный к указаному? Или же где можно настроить эти шаблоны, чтоб появился нужный? Заранее спасибо. |
|||
|
||||
| Bitter |
|
||||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 10 Всего: 27 |
Вы можете создать проект на основе шаблона SingleViewApplication. После создания заготовки, в классе AppDelegate в методе application:didFinishLaunchingWithOptions: Вы увидите следующий код:
Как можно заметить тут создается вью контроллер в строке self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease]; А потом этот контроллер помещается в окно self.window.rootViewController = self.viewController; Немного изменив это Вы добьетесь нужного результата. Нужно всего лишь создать UINavigationController и положить в него тот вью контроллер. А уже навигэйшн положить в окно.
|
||||
|
|||||
| fris |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 15.2.2012 Репутация: нет Всего: нет |
Создал шаблон SingleViewApplication.
Там был метод тока с одной строчкой: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { return YES; } Заменил return YES; указанным кодом. Выдало кучу ошибок... не понимало директиву autorelease, release. выдавало 'release' is unavaible: notavailable in automatic reference counting mod. ARC forbids explicit message send of 'release' Ругалось на self.viewController . Ошибка: property 'viewConroller' not found on object of type 'AppDelegate*' В общем просто так не получается. |
|||
|
||||
| fris |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 15.2.2012 Репутация: нет Всего: нет |
Это исправил. Я там при выборе проекта выбрал use storyboard. теперь я все галки там поснимал. Бум рыть дальше...
|
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 10 Всего: 27 |
Вы выбрали Use automatic reference counter. По этому оно и ругалось на релизы. Одна строчка там была действительно потому что был выбран стрибоард. Это такая штука которая во многом упрощает жизнь. Кстати с помощью нее тоже можно сделать Navigation Based без написания какого либо кода вообще:
1. Создаем Single View Based Application с выбранным сторибоардом: ![]() 2. Открываем созданный сторибоард в проекте ![]() 3. Видим наш основной контроллер. Перетаскиваем на поле NavigationController ![]() ![]() 4. Он перетянется вместе со своим ViewController, который мы благополучно удаляем. Он нам не нужен потому что у нас есть свой. Затем правой кнопкой нажимаете на Навигэйшн контроллере и тянете на свой кнтроллер. Отпускаете и выбираете в меню RelationShip - rootViewController ![]() 5. Вы увидите длинную стрелку, переместите контроллер на правую строну для удобства ![]() 6. и назначьте NavigationController Is Inital View Controller ![]() 7. Последнее - задайте заголовок вашему контролеру (для этого надо кликнуть по NavigationBar у контроллера) и запускайте. ![]() Вы сделали то что нужно и не написали ни строчки |
|||
|
||||
| fris |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 15.2.2012 Репутация: нет Всего: нет |
в этом примере http://lookapp.ru/2009/05/15/iphone-sdk-tutorials4/ после создания навигейшен бейсед начинают править RootViewController.h в котором RootViewController наследуются от UITableViewController.
в моем случае это ViewController.h , где ViewController наследуется от UIViewController. мне теперь нужно на форму поместить тэйбл вью контролер? и его связывать с навигейшен контролером? и нужно ViewController наследовать от UITableViewController и брать код что в том примере? |
|||
|
||||
| fris |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 15.2.2012 Репутация: нет Всего: нет |
У меня нету тех методов которые правятся в файлике RootViewController.m Это какие то произвольные методы или они обязательны в реализации , где взять те котрые мне нужны, т.е. у меня сгенерился ViewController.m для ViewController.h. А мне нужно его переделать под UITableViewController?
Нужно ли что-то менять в файликах appdelegate.h и appdelegate.m в связи с этим? |
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 10 Всего: 27 |
Вам нужно читать книги и задавать разные вопросы в разных темах, а не выливать поток своего непонимания в одной теме. Если вы базовых вещей не понимаете, сначала разберитесь с тем с чем имеете дело, а потом пишите программу. Если вы не понимаете как работает таблица и контроллеры то не надейтесь что напишете хоть что-то.
|
|||
|
||||
| fris |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 15.2.2012 Репутация: нет Всего: нет |
Да, так и надо. сори, что морочу голову. Просто пока плаваю
Но вроде думал правильно , нужно тэйбл контролер подключать в проект нашел различия в шаблонах между xcode 4.2.1 и 4.1, похоже мне нужно брать проект master detail application там навигейшен контролер уже связан с тэйбл контролером. |
|||
|
||||
| Bitter |
|
|||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 10 Всего: 27 |
Нет, не морочьтесь с шаблонами, все можно сделать с простого шаблона Simple View.
Опишите что Вам конкретно нужно. Поставить TableView в ваш вью контроллер это пара пустяков, далее связать TableView с контроллером (delegate и dataSource) и пользоваться |
|||
|
||||
| fris |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 15.2.2012 Репутация: нет Всего: нет |
Есть такой вопрос. Взял проект master detail application. Он мне создал два окна , на одном табличка, другое - детально - на форме только label. В табличку я загружаю rss. хочу когда кликнул на ячейку и перейдя на детально вывести в label.text значение кликнотого title из rss. Как я понял вызов controllerdetail происходит в методе:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { <код сгенерированный шаблоном> } В этом методе я создал NSDictionary* item, куда помещяю title и link текущей ячейки rss ридера. Как мне передать в controllerdetail этот самый item? В controllerdetail в нужном методе я присвою label.text = title + "[" + link + "]" |
|||
|
||||
| Bitter |
|
||||||
![]() Опытный лентяй ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1209 Регистрация: 15.8.2004 Где: Харьков, Ukraine Репутация: 10 Всего: 27 |
Один из вариантов объявить property у вашего controllerDetail, например так
а потом в методе didSelect... присвоить этому проперти ваш item
Чтобы выполнить что нибудь в этот момент, переопределите setter как нибудь так:
|
||||||
|
|||||||
| fris |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 15.2.2012 Репутация: нет Всего: нет |
Да, спасибо. Я уже додумался до "Один из вариантов объявить property у вашего controllerDetail, например так". Вчера вечером делал, но с ошибками.
В общем прием и механика реализации как в finforms dotnet. В разработке используется MVC. Пока еще не четко усвоил ее. Нодо поискать где совсем разжевано было с примером. И попрактиковаться. Читаю книги, пробую чето делать... |
|||
|
||||
| fris |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 15.2.2012 Репутация: нет Всего: нет |
Добрый день. Вопрос такой. Что отвечает за прокрутку UI элемента, т.е. когда пальцев проводишь вниз по экрану и контрол прокручивается. Я поместил на view обычный label и сделал его размеры больше размеров видимого экрана. и получается что вижу тока часть текста котрый вывожу в этот элемент, и пальцем не прокручивается.
|
|||
|
||||
| fris |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 15.2.2012 Репутация: нет Всего: нет |
Использовать те элементы котрые поддерживают Scroll. WebView, ScrollView...
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | iOS | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |