Форум программистов, компьютерный форум, киберфорум
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/12: Рейтинг темы: голосов - 12, средняя оценка - 5.00
19 / 8 / 2
Регистрация: 28.12.2012
Сообщений: 32
1

Навигация по страницам

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

Author24 — интернет-сервис помощи студентам
Добрый день.
Я только начал изучать iOS. И сразу же возник вопрос. Используя storyboard можно сделать сегвей перемещением мыши например с кнопки на другую сцену, а как переходить от странице к странице программно?
Т.е. допустим происходит загрузка страницы и по какому то условию мы переходим на вторую страницу...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.04.2013, 11:08
Ответы с готовыми решениями:

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

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

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

Переход по страницам
Здравствуйте! У меня очередная проблема:нужно сделать переход по страницам,т.е. имеется два файла...

28
0 / 0 / 0
Регистрация: 05.04.2013
Сообщений: 3
05.04.2013, 20:15 2
Посмотри в этом http://www.youtube.com/watch?v... e=youtu.be уроке
0
19 / 8 / 2
Регистрация: 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
14 / 22 / 4
Регистрация: 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
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
12.04.2013, 16:47 5
alexpac26, а Вы можете объяснить свою ярую симпатию к макросам(уже не первую тему вижу ответ с макросами)? Чисто ради интереса спрашиваю. Потому что лично мне бы Ваш код(если так везде макросы были бы) читать было бы достаточно не комфортно.
0
14 / 22 / 4
Регистрация: 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
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
12.04.2013, 17:54 7
Данный прием у Вас используется командно, либо Вы работаете один?
Как другие разработчики встречая данный код, реагируют?

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

Цитата Сообщение от alexpac26 Посмотреть сообщение
3 до 10 строк
"Длинные выражения" намного удобнее выделить в отдельный, хорошоНазванный метод.
1
14 / 22 / 4
Регистрация: 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
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
12.04.2013, 19:33 9
Цитата Сообщение от alexpac26 Посмотреть сообщение
2) не граниченное количество строк
Так и в дефайн Вы записать сколько угодно можете, в общем то.
А зачем Вам синтаксис языка Си, если Вы программируете используя Objective-C? (В общем случае он позволяет более точно и лаконично сформулировать основную идею того, что делает метод)
0
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
12.04.2013, 22:55 10
alexpac26, мне тоже интересен ответ на этот вопрос.

Цитата Сообщение от zulkis Посмотреть сообщение
Данный прием у Вас используется командно, либо Вы работаете один?
Как другие разработчики встречая данный код, реагируют?
0
14 / 22 / 4
Регистрация: 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
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
17.04.2013, 15:43 12
И коллеге второй набор SDK выучить всегда полезно. Один от Apple и второй - от alexpac26. Кстати, вы с завидным упорством игнорируете вопрос о своей команде и о ее отношении к вашему пристрастию...
0
14 / 22 / 4
Регистрация: 20.01.2013
Сообщений: 125
17.04.2013, 16:35 13
Кстати, вы с завидным упорством игнорируете вопрос о своей команде и о ее отношении к вашему пристрастию...
видимо довольно большая пропасть между коммандным программированием и программированием как таковым, раз вы упорно хотите это узнать
0
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
17.04.2013, 16:48 14
Цитата Сообщение от alexpac26 Посмотреть сообщение
видимо довольно большая пропасть между коммандным программированием и программированием как таковым, раз вы упорно хотите это узнать
Есть некоторые особенности...
Итак?
0
14 / 22 / 4
Регистрация: 20.01.2013
Сообщений: 125
17.04.2013, 16:57 15
к вашему пристрастию
думаю пристастие к оптимизации кода всегда было есть и будет
Есть некоторые особенности...
соблюдение стандартов оформления кода?
думаю если работают от 3 человек с проектом то это скорее жизненная необходимость
Один от Apple и второй - от alexpac26
второй "SDK" набор методов которые используются очень часто, думаю есть у кадого программиста, чтобы дать ему силу достаточно написать к нему документацию..
0
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
17.04.2013, 17:03 16
Цитата Сообщение от alexpac26 Посмотреть сообщение
думаю пристастие к оптимизации кода всегда было есть и будет
Оптимизировать можно по разным параметрам. В том числе и по легкости понимания.
Но в любом случае я хочу ответ. Четкий ответ на четко поставленный вопрос. По возможности честный. Неужели это так сложно?
0
14 / 22 / 4
Регистрация: 20.01.2013
Сообщений: 125
17.04.2013, 17:09 17
мне не понятна ваша заинтересованность есть ли команда или нет. Или намекаете что у меня нет опыта командной разработки?

да, большого опыта именно в командной разработке нету.

Добавлено через 1 минуту
В том числе и по легкости понимания
я бы на первое место поставил легкость чтения ибо перегруженный код, хоть и без макросов и на стандартных методах на чистом Objective-C довольно гроздок и трудно читаем
0
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
17.04.2013, 17:12 18
Вот и все. Это ж так просто
И ни на что я не намекаю. Просто интересно.

Спасибо за ответ.
0
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
17.04.2013, 21:40 19
alexpac26, ого, вам стоит прислушаться к советам, ибо вы делаете полнейшую фигню
я бы наотрез отказался работать с человеком, который пишет подобное, это ж как нужно ненавидеть окружающих себя коллег и платформу, чтобы так извращаться...
Приходишь, значит, на новый проект и видишь где-то среди нескольких тысяч классов какой-то Dict, да вас бы уволили за такое и потом никуда не взяли!
#define Strdin NSMutableString
#define String NSString
#define Dict NSMutableDictionary
#define Array NSMutableArray
#define Application [UIApplication sharedApplication]
мама родная...
был одногруппник, который называл переменные от балдны - mickeyMouse, suuuperCool и так далее, вы мне его напоминаете

Вижу, у вас есть познания в php, ничего не имею против языка, но который раз встречаюсь с людьми, которые с него начинали и росли в упорных говнокодеров

Вам же советую почитать книги по рефакторингу и ОО принципах вцелом, чтобы стать на путь истинный, а так же просто почитать пару хороших проектов на гитхабе
0
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
17.04.2013, 22:08 20
Цитата Сообщение от Vorona Посмотреть сообщение
Вам же советую почитать книги по рефакторингу
Да вот, кстати, весьма недурная книжица на эту тему.
1
17.04.2013, 22:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2013, 22:08
Помогаю со студенческими работами здесь

Распределение по страницам
Здравствуйте! Помогите решить задачу. У меня есть страница на которой выводятся обьявления о...

Переходы по страницам
в гугле немного не то, тыкните меня пожалуйста носом или подскажите где можно почитать о такой...

Переход по страницам.
Мне нужно по нажатию на кнопку перейти с MainPage.xaml на Page1.xaml: В ASP.NET это было...

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

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

Доступ к страницам
Добрый день. Есть стартовая страница для авторизации. Если я захожу с пользователя, то есть...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru