Как изменить XIB в приложении вкладывателя? -- iphone поле с участием uitabbarcontroller поле с участием xib пол Связанный проблема

How to change XIB in a tab bar application?


1
vote

проблема

русский

Мое приложение для iPhone основано на панели вкладка, но я хотел бы выстрелить действие, которое полностью выключает View Controller Tab Bar полностью и заменяет все в окне с видом из другого файла XIB. Я думаю, что это должно быть сделано в делегате приложений (поскольку это «главный» класс), но я не знаю правильного пути оттуда. Кто-нибудь знает, как делать то, что я пытаюсь сделать?

Спасибо заранее!

Английский оригинал

My iPhone app is tab bar-based, but I would like to fire an action which switches out the tab bar controller view completely and replaces everything in the window with a view from a different XIB file. I would guess this has to be done in the application delegate (since this is the "chief" class), but I don't know the right way to go from there. Does anyone know how to do what I am trying to do?

Thanks in advance!

</div
        

Список ответов

0
 
vote
<Р> Вкладка контроллер представления может иметь это метод действия, такие как <код> -(IBAction)onChangeView и этот метод вызывает метод на <код> [[UIApplication sharedApplicaton] delegate] , например, <код> -(void)toggleScreen .
 <код> -(IBAction)onChangeView:(id)sender {     MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];     [delegate toggleScreen]; }   
<Р> Затем в приложении метод делегата сделать что-то вроде этого:
 <код> -(void)toggleScreen {     [[[window subviews] objectAtIndex:0] removeFromSuperview];     [window addSubview:otherView]; }   
<Р> Это может быть иначе, если вам нужно переходы, однако.
 

Your tab view controller could have it's action method, such as -(IBAction)onChangeView and that method calls a method on the [[UIApplication sharedApplicaton] delegate], such as -(void)toggleScreen.

-(IBAction)onChangeView:(id)sender {     MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];     [delegate toggleScreen]; } 

Then in your app delegate method do something like this:

-(void)toggleScreen {     [[[window subviews] objectAtIndex:0] removeFromSuperview];     [window addSubview:otherView]; } 

It may be different if you need transitions, however.

</div
 
 
0
 
vote
<Р> Вы действительно не должны пройти весь путь к приложению делегата. Вы можете легко удалить существующие виды и контроллеры и добавлять новые виды. Это действительно зависит от того, что вы делаете. Можно, например, временно отложить в сторону существующей структуры вида и идти с чем-то совершенно другим, и вернуться к исходной схеме, если вы хотите (я не уверен пользовательского опыта, хотя). <Р> В моих приложениях, я обычно есть контроллер представления корня или я использую мое главное окно, чтобы добавить вид на и взгляды удалить из. Некоторые виды добавят другие взгляды на себя или переход другого вида на rootview или в главном окне. Некоторые виды закрыть себя, чтобы выявить мнение ниже. Варианты безграничны и зависят от ваших потребностей и архитектуры.
 

You don't really have to go all the way to the app delegate. You can easily remove your existing views and controllers and add new views. It really does depend on what you are doing. You could, for example, temporarily put aside the existing view structure and go with something totally different, and get back to the original scheme if you want (I'm not sure of the user experience though).

In my apps, I usually have a root view controller or I use my main window to add views to and remove views from. Some views will add other views to themselves or transition another view onto the rootview or main window. Some views close themselves to reveal the view below. The options are limitless, and depend on your needs and architecture.

</div
 
 
0
 
vote

Спасибо, ребята! Ник, это просто код, который я нужен. В случае, если кто-то считает, что это удобно, вот код, который я использовал, чтобы добавить анимацию, чтобы переключить вид. Просто поместите это в метод в приложении делегата:

 <код> AnotherViewController *anotherViewController = [[AnotherViewController alloc] initWithNibName:@"AnotherView" bundle:nil];  [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:1.0]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.window cache:YES]; [[[window subviews] objectAtIndex:0] removeFromSuperview]; [window addSubview:[anotherViewController view]]; [UIView commitAnimations];   
 

Thanks guys! Nick, that's just the code I needed. In case anyone finds this handy, here's the code I used to add animation to switch the view. Just put this in a method in the app delegate:

AnotherViewController *anotherViewController = [[AnotherViewController alloc] initWithNibName:@"AnotherView" bundle:nil];  [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:1.0]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.window cache:YES]; [[[window subviews] objectAtIndex:0] removeFromSuperview]; [window addSubview:[anotherViewController view]]; [UIView commitAnimations]; 
</div
 
 

Связанный проблема

8  Как обрезать изображение в частях программно  ( How to crop image in to pieces programmatically ) 
Мне нужно разделить изображение на 9 штук программно. Любые предложения о том, как это сделать? ...

0  Получение неправильной аннотации от метода делегата MapView  ( Getting wrong annotation from mapview delegate method ) 
Я объявил следующее в своем файле .h: <Код> Annotation *annoForMoreDetails . Однако, когда я пытаюсь установить его в текущую аннотацию в методе <Код> -...

0  Могу ли я использовать зону памяти, чтобы убить утечки iPhone?  ( Can i use a memory zone to kill iphone leaks ) 
У меня есть класс C ++, который я использую с моим контроллером Objective-C ++ в моем приложении iPhone. Класс C ++ делает некоторые расчеты на некоторых данн...

15  Как получить все записи NSFetchedResultScontroller / NsmanageObjectContext?  ( How to get all entries of a nsfetchedresultscontroller nsmanagedobjectcontext ) 
У меня есть хорошее рабочее приложение для iPhone, которое работает с основными данными. Я использую NSFetchedResultScontroller / NSManageObjectContext, как о...

57  Как динамически разместить высоту UiableViewCell  ( How to dynamically resize uitableviewcell height ) 
У меня есть классический сгруппированный UiableView с редактируемым UIrextViews внутри каждой ячейки. Этот текстовые представления могут быть одиночными или м...

3  Как создать универсальные приложения на iPhone / iPad?  ( How to create universal apps in iphone ipad ) 
Я хочу создать универсальные приложения. Я уже сделал несколько приложений для iPhone. Теперь я хочу начать универсальные приложения, что означает, что прилож...

4  Основные данные Nsfetchrequest также выбирают детей объектов объекта  ( Core data nsfetchrequest also fetches children objects of the entity ) 
Я новичок в iOS Dev и основные данные. У меня есть родительский NsmanageObject <код> @class Units; @interface Properties : NSManagedObject @property (nonat...

1  Нужно, чтобы получить доступ к URL в моем одном представлении ИОС приложения с помощью веб-просмотра  ( Need to access the url in my single view ios application using web view ) 
<Р> У меня есть один вопрос относительно WebView. У меня есть URL-адрес, и нужно, чтобы запустить этот URL в WebView. и мой код здесь идет .. <код> NSLog(@"R...

1  Не удается изменить размер кадра UiscrollView  ( Cannot resize uiscrollviews frame ) 
У меня есть UiscrollView с его рамой и содержимым с таким же размером. Я хочу изменить высоту кадра ScrollView, когда появится клавиатура, но она не работает....

1  Обновите и вставьте объемные данные XML в мою базу данных SQLite  ( Update and insert bulk xml data into my sqlite database ) 
Я хочу загрузить хостованный XML документ в базу данных My приложения SQLite, обновляя существующие строки или вставляя новые строки данных по мере необходимо...

0  вебсервис В Iphone SDK?  ( Webservice in iphone sdk ) 
<Р> я скачал WSDLObjC-0,6 от Google, чтобы включить SOAP веб-сервис в IPhone SDK.But это является, как App файл, как я могу интегрировать этот файл в iPhone SD...

0  Призматическое соединение вызывает сбой коробки2D (Cocos2D)  ( Prismatic joint causes a crash box2dcocos2d ) 
Я пытался настроить призматический сустав, но я получаю эту ошибку при выполнении времени: Ошибка утверждения: (заблокировано () == false), функциональная нас...

4  Создайте каталог на iPhone  ( Create a directory on an iphone ) 
Я хочу знать, как создать каталог на указанном пути. Я использовал "систему (" путь каталога ");" Это работает нормально в симуляторе, но не на устройстве ...

2  IPhone UiableView подавляет кнопку раскрытия, когда кнопка «Удаление» отображается  ( Iphone uitableview suppress disclosure button when delete button is displayed ) 
У меня есть <код> UITableView , который имеет кнопку раскрытия на каждой строке. Когда таблица введена в режим редактирования, и управление удалением нажата (...

0  Не можете получить панель поиска для отображения в приложении iPhone  ( Cant get search bar to display in iphone application ) 
Я пытаюсь получить панель поиска для отображения в моем приложении. Я следую в примере Show в приложении TableSearch Sample. Я более или менее реализован ...

Связанный проблема

8  Как обрезать изображение в частях программно 
0  Получение неправильной аннотации от метода делегата MapView 
0  Могу ли я использовать зону памяти, чтобы убить утечки iPhone? 
15  Как получить все записи NSFetchedResultScontroller / NsmanageObjectContext? 
57  Как динамически разместить высоту UiableViewCell 
3  Как создать универсальные приложения на iPhone / iPad? 
4  Основные данные Nsfetchrequest также выбирают детей объектов объекта 
1  Нужно, чтобы получить доступ к URL в моем одном представлении ИОС приложения с помощью веб-просмотра 
1  Не удается изменить размер кадра UiscrollView 
1  Обновите и вставьте объемные данные XML в мою базу данных SQLite 
0  вебсервис В Iphone SDK? 
0  Призматическое соединение вызывает сбой коробки2D (Cocos2D) 
4  Создайте каталог на iPhone 
2  IPhone UiableView подавляет кнопку раскрытия, когда кнопка «Удаление» отображается 
0  Не можете получить панель поиска для отображения в приложении iPhone