Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование iOS/iPhone
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
carkov_1990
19 / 8 / 2
Регистрация: 28.12.2012
Сообщений: 32
#1

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

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

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

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

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

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

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

Переход по страницам
Доброе утро, форумчане. Как мне организовать переход по страницам (нажимаю...

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

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

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

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

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

Спасибо за ответ.
0
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
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
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
17.04.2013, 22:08 #20
Цитата Сообщение от Vorona Посмотреть сообщение
Вам же советую почитать книги по рефакторингу
Да вот, кстати, весьма недурная книжица на эту тему.
1
17.04.2013, 22:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2013, 22:08

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

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

Переход по страницам
Вообщем проблема такова, создаю свою игру закинула один скрипт, пропитала всё...


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

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

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