Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
carkov_1990
19 / 8 / 1
Регистрация: 28.12.2012
Сообщений: 32
#1

Навигация по страницам - Программирование iOS

05.04.2013, 11:08. Просмотров 1712. Ответов 28
Метки нет (Все метки)

Добрый день.
Я только начал изучать iOS. И сразу же возник вопрос. Используя storyboard можно сделать сегвей перемещением мыши например с кнопки на другую сцену, а как переходить от странице к странице программно?
Т.е. допустим происходит загрузка страницы и по какому то условию мы переходим на вторую страницу...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2013, 11:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Навигация по страницам (Программирование iOS):

Навигация по страницам - Python
Здравствуйте. Не могли бы вы подсказать способ реализации по страницам (пагинация), не прибегая к велосипедам?

Навигация по страницам HTML - HTML, CSS
Здраствуйте, как сделать, что бы по нажатию на ссылку тебя перекидывало на другую страницу и направляло на ту часть текста которая тебе...

Размер окна или навигация по страницам - MS Excel
Добрый день! Очень много листов в документе, это затрудняет работу. Скажите, пожалуйста, в какие дебри надо залезть, чтобы изменить...

Хождение по страницам - C++
1)Выводятся первые 20 строчек текста 2)После текста появляется надпись "Перейти на след. страницу, нажмите n, перейти на предыдущую...

Переход по страницам в вк - C#
Вот нашёл на просторах киберфорума код для авторизации во вконтакте, без API: string login = "*******"; string pass="*******"; // мой...

Переход по страницам - PHP БД
Доброе утро, форумчане. Как мне организовать переход по страницам (нажимаю кнопку далее, из базы берутся следующие 6 записей и выводятся на...

28
Klafter
0 / 0 / 0
Регистрация: 05.04.2013
Сообщений: 3
05.04.2013, 20:15 #2
Посмотри в этом http://www.youtube.com/watch?v=cvGJp...ature=youtu.be уроке
0
carkov_1990
19 / 8 / 1
Регистрация: 28.12.2012
Сообщений: 32
09.04.2013, 13:46  [ТС] #3
Спасибо, большое. Но это немного не то, что я хотел.То что я хотел делается вот так
Objective-C
1
2
3
4
5
UIStoryboard *story=[UIStoryboard storyboardWithName:@"NameStoryBoard"];
UIViewController *controller1=[story instantiateViewControllerWithIdentifier:@"IDController1"];
UIViewController *controller2=[story instantiateViewControllerWithIdentifier:@"IDController1"];
if (условие) [self.navigationController pushViewController:controller1 anumated:YES];
else [self.navigationController pushViewController:controller2 anumated:YES];
Что то в этом духе
1
alexpac26
14 / 22 / 0
Регистрация: 20.01.2013
Сообщений: 125
11.04.2013, 13:46 #4
а как переходить от странице к странице программно
через макрос

Objective-C
1
2
3
4
5
6
7
8
#define story [UIStoryboard storyboardWithName:@"ИМЯ СТОРИ БОРДА" bundle:nil]
#define viewcontroller(name) [story instantiateViewControllerWithIdentifier:name]
#define GoToViewController(vc,name,anim) [vc.navigationController pushViewController:viewcontroller(name) animated:anim]
 
// использование
// если надо внезапно перейти на другой контроллер на стори боарде
 
GoToViewController(self, @"ИДЕНТИФИКАТОР КОНТРОЛЛЕРА",YES);
// где
self - текущий контроллер
@"ИДЕНТИФИКАТОР КОНТРОЛЛЕРА" - Навигация по страницам
YES - с анимацией или без нее

нужно помнить что IOS каждый такой переход хранит в кеше поэтому для перехода назад надо:

Objective-C
1
2
3
4
5
// переход НАЗАД
[self.navigationController popViewControllerAnimated:YES];
 
// переход в первый контроллер или в корень
[self.navigationController popToRootViewControllerAnimated:YES];
1
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
12.04.2013, 16:47 #5
alexpac26, а Вы можете объяснить свою ярую симпатию к макросам(уже не первую тему вижу ответ с макросами)? Чисто ради интереса спрашиваю. Потому что лично мне бы Ваш код(если так везде макросы были бы) читать было бы достаточно не комфортно.
0
alexpac26
14 / 22 / 0
Регистрация: 20.01.2013
Сообщений: 125
12.04.2013, 17:05 #6
Вы можете объяснить свою ярую симпатию к макросам
когда каждый день пишешь приложения и там практически постоянно встречаются подобные конструкции от 3 до 10 строк, то приходится их запаковывать в макрос чтобы все было в 1 строчку это как бы очевидно.

также с помощью макросов можно переименовывать и укорачивать стандартные, но очень часто используемые типы данных в Objective C

например

Objective-C
1
2
3
4
5
#define Strdin NSMutableString
#define String NSString
#define Dict NSMutableDictionary
#define Array NSMutableArray
#define Application [UIApplication sharedApplication]
сравним 2 кода

Objective-C
1
2
3
NSMutableArray *newitems = [NSMutableArray new];
NSMutableDictionary *mydict = [NSMutableDictionary new];
NSMutableString *str = [NSMutableString];
и
Objective-C
1
2
3
Array *newitems = [Array new];
Dict *mydict = [Dict new];
Strdin *str = [Strdin new];
нижний выглядит лаконично

также пример синглтона с ипользованием макроса

UtilClass.h
Objective-C
1
2
3
4
5
6
7
8
9
10
11
#import <Foundation/Foundation.h>
 
#define util [UtilClass getInstance]
 
@interface UtilClass : NSObject
 
+(UtilClass*) getInstance;
 
@property  NSString* hello;
 
@end
UtilClass.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#import "UtilClass.h"
@implementation UtilClass
 
static UtilClass* UtilClass_st = nil;
 
+(UtilClass*) getInstance {
    if (UtilClass_st==nil) {
        UtilClass_st = [UtilClass new];
        UtilClass_st.hello = @"hello world";
      // bla bla
}
return UtilClass_st;
}
 
@end
пример кода с синглтоном
Objective-C
1
NSLog(@"singlton string value is %@", util.hello);
0
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
12.04.2013, 17:54 #7
Данный прием у Вас используется командно, либо Вы работаете один?
Как другие разработчики встречая данный код, реагируют?

Добавлено через 5 минут
Придираюсь конечно, но данный дефайн неверен семантически.
Цитата Сообщение от alexpac26 Посмотреть сообщение
#define Array NSMutableArray
И для поддержания написанного Вами приложения, стороннему разработчику нужно будет лишний раз привыкать к Вашей семантике только ради того, чтобы писать в том же стиле, в котором изначально писался проект.
Что опять же некомфортно.

Цитата Сообщение от alexpac26 Посмотреть сообщение
3 до 10 строк
"Длинные выражения" намного удобнее выделить в отдельный, хорошоНазванный метод.
1
alexpac26
14 / 22 / 0
Регистрация: 20.01.2013
Сообщений: 125
12.04.2013, 19:24 #8
хорошоНазванный метод
глобальный метод синглтон класса?
ибо если он нужен везде!

Добавлено через 5 минут
Длинные выражения" намного удобнее выделить в отдельный, хорошоНазванный метод.
как например макрос получения адреса файла лежащего в ресурсах проекта

// файловая система

#define rootFilePath(path) [util.filepath stringByAppendingPathComponent: path]
#define rootFileResourcePath(filename) [util getRootResoursePath:filename]
где util это синглтон и весь расчет строки адреса идет в нем

Objective-C
1
NSData *d = [[NSData alloc] initWithContentsOfFile:rootFileResourcePath(@"hello.txt")];
Добавлено через 14 минут
в споре рождается истина, также можно использовать статические функции

Objective-C
1
2
3
static void sname(NSString *str) { 
    NSLog(@"dfddf %@",str); 
}
преимущества над макросами:

1) код подсвечивается
2) не граниченное количество строк
3) синтаксис вывода такой же (в круглых скобках)
0
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
12.04.2013, 19:33 #9
Цитата Сообщение от alexpac26 Посмотреть сообщение
2) не граниченное количество строк
Так и в дефайн Вы записать сколько угодно можете, в общем то.
А зачем Вам синтаксис языка Си, если Вы программируете используя Objective-C? (В общем случае он позволяет более точно и лаконично сформулировать основную идею того, что делает метод)
0
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
12.04.2013, 22:55 #10
alexpac26, мне тоже интересен ответ на этот вопрос.

Цитата Сообщение от zulkis Посмотреть сообщение
Данный прием у Вас используется командно, либо Вы работаете один?
Как другие разработчики встречая данный код, реагируют?
0
alexpac26
14 / 22 / 0
Регистрация: 20.01.2013
Сообщений: 125
17.04.2013, 14:42 #11
А зачем Вам синтаксис языка Си
функции в круглых скобках выгдят достаточно кратко, не перегружены текстом и квадратными скобками

аналог php функции explode

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
static NSMutableArray* stringExplode(NSString * str, NSString * delemitter, bool empty) {
    NSMutableArray *a = [NSMutableArray new];
    NSArray *z = [str componentsSeparatedByString: delemitter];
    for (NSString *s in z) {
        if (s.length > 0 || empty) {
            [a addObject: [NSMutableString stringWithString:s]];
        }
    }
    return a;
}
 
//
 
NSArray *z = stringExplode(@"строка1;строка2;",@";",NO);
 
NSLog(@"%@",z);
0
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
17.04.2013, 15:43 #12
И коллеге второй набор SDK выучить всегда полезно. Один от Apple и второй - от alexpac26. Кстати, вы с завидным упорством игнорируете вопрос о своей команде и о ее отношении к вашему пристрастию...
0
alexpac26
14 / 22 / 0
Регистрация: 20.01.2013
Сообщений: 125
17.04.2013, 16:35 #13
Кстати, вы с завидным упорством игнорируете вопрос о своей команде и о ее отношении к вашему пристрастию...
видимо довольно большая пропасть между коммандным программированием и программированием как таковым, раз вы упорно хотите это узнать
0
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
17.04.2013, 16:48 #14
Цитата Сообщение от alexpac26 Посмотреть сообщение
видимо довольно большая пропасть между коммандным программированием и программированием как таковым, раз вы упорно хотите это узнать
Есть некоторые особенности...
Итак?
0
alexpac26
14 / 22 / 0
Регистрация: 20.01.2013
Сообщений: 125
17.04.2013, 16:57 #15
к вашему пристрастию
думаю пристастие к оптимизации кода всегда было есть и будет
Есть некоторые особенности...
соблюдение стандартов оформления кода?
думаю если работают от 3 человек с проектом то это скорее жизненная необходимость
Один от Apple и второй - от alexpac26
второй "SDK" набор методов которые используются очень часто, думаю есть у кадого программиста, чтобы дать ему силу достаточно написать к нему документацию..
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2013, 16:57
Привет! Вот еще темы с ответами:

Переход по страницам. - C# WPF
Мне нужно по нажатию на кнопку перейти с MainPage.xaml на Page1.xaml: В ASP.NET это было Server.Navigation(patch); Как быть тут?

Рубрики по страницам - WordPress
ПРивет всем! подскажите, как указать созданой рубрике что она должна отображаться на странице &quot;страница1&quot;, а другая рубрика на другой...

Сортировка по страницам - HTML, CSS
Всем доброго времени суток! Задавался вот над чем, предположим у меня есть файЛ, в котором есть текст, можно ли как-то по средствам html...

Тайтлы к страницам - PHP
Добрый день! Ребят помогите разобраться. Есть скрипт мониторинга серверов, но проблема в том, что все страницы с 1 тайтлом - заголовок у...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
17.04.2013, 16:57
Ответ Создать тему
Опции темы

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