Изменение вида с одного XIB на другой с анимацией через несколько раз - PullRequest
0 голосов
/ 02 августа 2011

Я создал приложение на основе представления, которое загружает представление по умолчанию ...

Мое представление по умолчанию - это заставка ..

То, чего я хочу достичь, - это один раз представление по умолчанию (закончил загрузку, через несколько секунд он загружает другое представление, которое является политикой конфиденциальности или экраном приложения.

Код в AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    self.window.rootViewController = self.viewController;    
    [self.window makeKeyAndVisible];
    return YES;
}

Без изменений как обычно ...

Над кодом загрузить представление из файла splashscreen.xib

Следующий код находится в splashscreen.m

- (IBAction)loadPrivacyScreen {
    NSLog(@"Switching To Another View");
    PrivacyPolicyView *modal = [[PrivacyPolicyView alloc]initWithNibName:nil bundle:nil];
    modal.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentModalViewController:modal animated:YES];
    [modal release];
}


- (void)viewDidLoad {

    [super viewDidLoad];
    sleep(3);
    [self loadPrivacyScreen];
    // Do any additional setup after loading the view from its nib.
}

Через три секунды он попадает в функцию loadPrivacyScreen, ноне загружает представление.

- (IBAction)loadPrivacyScreen;

Я создал метод как IBAction, потому что я хочу подключить этот метод с помощью кнопки на экране конфиденциальности, чтобы проверить, работает ли эта функция ...

И удивительно, что это работает, когда вы нажимаете кнопку.Но это работает вовремя.

Может кто-нибудь подсказать мне, что я делаю не так?или любая другая альтернатива для достижения того же результата?

Примечание: Я также попытался изменить

- (IBAction)loadPrivacyScreen;

на

- (void)loadPrivacyScreen;

Но все тот же результат.Это не переключение ....

Ответы [ 2 ]

0 голосов
/ 02 августа 2011
- (void)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    self.window.rootViewController = self.viewController;    
    [self.window makeKeyAndVisible];
    [viewController showSplash];
}

А в контроллере вида определите метод, подобный

> IBOutlet UIView *modelView;
- (void)showSplash;
- (void)hideSplash;
-(void)showSplash {
    UIViewController *modalViewController = [[UIViewController alloc] init];
    modalViewController.view = modelView;
    [self presentModalViewController:modalViewController animated:NO];
    [self performSelector:@selector(hideSplash) withObject:nil afterDelay:2.0];
}
//hide splash screen
- (void)hideSplash {
    [[self modalViewController] dismissModalViewControllerAnimated:YES];
}
0 голосов
/ 02 августа 2011

Прежде всего, iOS предоставляет простой способ загрузки заставки. Просто добавьте изображение с разрешением 320x480 под именем default.png и добавьте, что в вашем проекте оно автоматически будет использовать это изображение в качестве заставки.

По-вашему вызовите экран loadPrivacy с таймером.

- (void)viewDidLoad {
   [super viewDidLoad];
   NSTimer *theTimer = [NSTimer scheduledTimerWithTimeInterval:3.00 target:self selector:@selector(loadPrivacyScreen) userInfo:nil repeats:NO];

}
...