【问题标题】:Changing view from one xib to another xib with animation after some times一段时间后通过动画将视图从一个 xib 更改为另一个 xib
【发布时间】:2011-08-02 11:12:42
【问题描述】:

我制作了一个基于视图的应用程序,它正在加载默认视图...

我的默认视图是闪屏..

我想要实现的是,一旦默认视图(启动视图)完成加载,几秒钟后它会加载另一个视图,即隐私策略或应用程序屏幕。

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;

但还是一样的结果。它没有切换....

【问题讨论】:

    标签: iphone ios animation view splash-screen


    【解决方案1】:

    首先,iOS 提供了一种加载启动画面的简单方法。 只需在名为 default.png 的名称中添加一个分辨率为 320x480 的图像,并将其添加到您的项目中,它会自动将此图像用作初始屏幕图像。

    以您的方式使用计时器调用 loadPrivacy 屏幕。

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

    【讨论】:

    • 我也在使用您在此处建议的技术...但是在睡觉后我想动画到另一个视图。
    【解决方案2】:
    - (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];
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    相关资源
    最近更新 更多