Один UIViewController со многими UIViews - PullRequest
1 голос
/ 20 сентября 2010

Я создаю приложение с одним UIViewController и несколькими UIViews.У меня есть MainViewController с UIView под ним, который отображается при загрузке и несколько других UIViews все в MainWindow.xib.Как мне перейти от одного просмотра к другому?

Обновление:

Спасибо за ответ.

Я добавил MainViewController в свой appDelegate.

На FinishedLaunching: [window addSubview:[viewController view]];

Этот View Controller имеет функцию goToNextPage.

-(IBAction)goToNextPage:(id)sender{

[self.view removeFromSuperview];
[self.view addSubview:tableOfContents];

}

В Интерфейсном Разработчике у меня естьэтот View Controller добавлен в MainWindow.xib.Под этим View Controller у меня есть UIView (называемый Cover), который загружается как дочерний при запуске, и другой UIView (в конечном итоге многие) с именем TableOfContents, который сам по себе.

Я попытался опубликовать изображениемой MainWindow.xib здесь, но, видимо, моя репутация недостаточно высока.

На обложке UIView есть кнопка, связанная с функцией goToNextPage.

Когда я нажимаюПри нажатии кнопки страница становится пустой, как будто одно представление успешно удаляется, но следующее не загружается.

Как получить функцию goToNextPage для переключения предварительно загруженной обложки UIView с другим UIView с именем TableOfContents?

Другое Редактирование:

BookTest6AppDelegate.h:

#import <UIKit/UIKit.h>

@class MainViewController;

@interface BookTest6AppDelegate : NSObject <UIApplicationDelegate> {

    UIWindow *window;
    IBOutlet MainViewController *viewController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet MainViewController *viewController;

@end

BookTest6AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

// Override point for customization after application launch.

[window addSubview:[viewController view]];
[window makeKeyAndVisible];

return YES;

}

MainViewController.h

#import <UIKit/UIKit.h>

@class TableOfContents;

@interface MainViewController : UIViewController {

    IBOutlet TableOfContents *tableOfContents;
}

@property (nonatomic, retain) IBOutlet TableOfContents *tableOfContents;

-(IBAction)fGoToTableOfContentsController:(id)sender;
-(IBAction)fGoToNextPageController:(id)sender;

@end

MainViewController.m

#import "MainViewController.h"
#import "TableOfContents.h"

@implementation MainViewController

@synthesize tableOfContents;

-(IBAction)fGoToTableOfContentsController:(id)sender{

    [self.view removeFromSuperview];
    [self.view addSubview:self.tableOfContents];

}

-(IBAction)fGoToNextPageController:(id)sender{

}

Мои классы UIView в основном просто инициируют кнопки, которые ссылаются на функции, определенные в MainViewController.h.

1 Ответ

2 голосов
/ 20 сентября 2010

Сначала вам необходимо знать, когда вы переключаетесь с одного на другое.

Затем вы говорите это своему MainController и добавляете SubSubView к mainController.view другое представление.больше информации или кода мы могли бы помочь вам немного больше: -)

Удачи
Винсент

Редактировать:

[self.view removeFromSuperview];

Здесь вы удаляете вид окна,Я думаю, что это не лучший способ ^^ Попробуйте

[ viewController.view removeFromSuperview ];
: -)

Работает ли он лучше?

Редактировать: Редактировать BIS: Хан, это моя вина.Вам нужно удалить контроллер и добавить еще один в делегат приложения, а не в свой mainController (вы можете сделать это тоже, но не с вашим реальным кодом).У вас есть два варианта: 1 °) Объявите все ваши контроллеры в вашем делегате приложения.2 °) Объявите все свои контроллеры в одном главном контроллере.Но главный контроллер будет здесь, чтобы «контролировать» других.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...