简体   繁体   中英

ios simulator black screen with status bar

I am new to Objective-C and I'm making my first app, a single-view app. When I run my program ,the fullscreen ad that is supposed to appear (I'm using RevMob) appears. However, when I exit the ad I get a black screen with a blue status bar at the top.

I have tried many things, such as setting my main view controller as initial view controller, restarting my computer, changing/removing debugger, resetting the iOS simulator, etc.

My Xcode version is 4.6 and my OS is mac OSX 10.8.4

I don't want to delete Xcode and I also don't want to remove ads because that is my only source of income.

Here is my code:

Appdelegate.m

@implementation AppDelegate



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

[RevMobAds startSessionWithAppID:@"myappid"];
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

 [self.window makeKeyAndVisible];
return YES;
  }


  - (void)applicationWillResignActive:(UIApplication *)application
  {
// Sent when the application is about to move from active to inactive state. This can     occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the   background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES      frame rates. Games should use this method to pause the game.
 }

- (void)applicationDidEnterBackground:(UIApplication *)application
{
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}


 - (void)applicationDidBecomeActive:(UIApplication *)application
{
 // Restart any tasks that were paused (or not yet started) while the application was    inactive. If the application was previously in the background, optionally refresh the user    interface.
RevMobFullscreen *ad = [[RevMobAds session] fullscreen];
[ad loadWithSuccessHandler:^(RevMobFullscreen *fs) {
    [fs showAd];
    NSLog(@"Ad loaded");
} andLoadFailHandler:^(RevMobFullscreen *fs, NSError *error) {
    NSLog(@"Ad error: %@",error);
} onClickHandler:^{
    NSLog(@"Ad clicked");
} onCloseHandler:^{
    NSLog(@"Ad closed");
}];
}


 - (void)applicationWillTerminate:(UIApplication *)application
{
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

- (void)dealloc
 {
[_window release];
[super dealloc];
 }

@end

Appdelegate.h:

#import <UIKit/UIKit.h>
#import "ViewController.h"


@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic)UIWindow *window;


@end

There is nothing wrong with the ad code. What seems to be (not) happening is that your app has no content. I suspect that you haven't set up the rootViewController (initial view controller) for the app correctly.

This is what you need to do:

  1. Get rid of all of the app ad code and just make an app that works. All it has to do is correctly show an initial view controller. You could just make a new project in XCode using the Single View Application template.

  2. Add your app code as per this example . You will invoke the code from your initial view controller via a button.

  3. Once that is working, you can add the code into - (void)applicationDidBecomeActive:(UIApplication *)application as per your question. When you dismiss the advert, you should see your initial view controller.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM