在didFinishLaunchingWithOptions中定位视图

时间:2013-01-28 15:32:12

标签: iphone ios ipad

我正在寻找4天但无法达成任何解决方案。

在我的iOS应用程序中,我尝试使用推送通知,那里没有问题。我收到通知,并使用didReceiveRemoteNotification方法使用以下代码,我可以毫无问题地访问详细信息视图。

NSDictionary *aps = [userInfo objectForKey:@"aps"];
NSArray *array = [[aps objectForKey:@"acme"] componentsSeparatedByString:@","];
NSArray *fixtureArray = [[CreateFixture alloc] createFixtureWithArray:array andStyle:@"single"];

UINavigationController *navController = (UINavigationController *)self.window.rootViewController;
UIViewController *root = navController.topViewController;
FPViewController *vc = [[FPViewController alloc] init];
[vc createViewWithArray:fixtureArray];

NSArray *vcs = [NSArray arrayWithObjects:root, vc, nil];
[navController setViewControllers:vcs animated:YES];

当我完全关闭应用并发送通知时,我的应用会按预期以didFinishLaunchingWithOptions打开。我在以下if语句中使用相同的代码:

if (launchOptions != nil)
{
NSDictionary* dictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
    if (dictionary != nil)
    {
        same code above
    }
}

BUT !!!这次我的细节视图出现了不同的x和宽度高度。所以应用程序变得无用。一些标签和按钮没有看到一些视图更大和一些其他视图。 ©找不到任何解决方案请帮助! (所有视图,标签,按钮等都是以编程方式创建的)我正在使用autoresizingMask进行横向和纵向窗口。我对任何建议持开放态度。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

我认为覆盖drawRect方法可以解决这个问题。并在drawRect方法中设置框架

答案 1 :(得分:0)

我不知道有什么区别,但更改推送详细信息视图代码可以解决问题。

这是我的旧代码

NSDictionary *aps = [userInfo objectForKey:@"aps"];
NSArray *array = [[aps objectForKey:@"acme"] componentsSeparatedByString:@","];
NSArray *fixtureArray = [[CreateFixture alloc] createFixtureWithArray:array andStyle:@"single"];

UINavigationController *navController = (UINavigationController *)self.window.rootViewController;
UIViewController *root = navController.topViewController; //delete
FPViewController *vc = [[FPViewController alloc] init];
[vc createViewWithArray:fixtureArray];

NSArray *vcs = [NSArray arrayWithObjects:root, vc, nil]; //delete
[navController setViewControllers:vcs animated:YES]; //delete

我删除了root viewcontroller和setViewControllers:方法。

并添加了pushViewController:animated:method。

[navController pushViewController:vc animated:YES];
希望有一个同样问题的人不要放松5天。祝你好运。