2016-05-22 52 views
0

如果有人可以找到一個正確的副本,請將其鏈接到我我會非常感激,但是我的情況有點不同於那些誰也有錯誤。我的具體問題是,一旦模擬器打開我的應用程序,只是一個空白的黑屏,沒有錯誤發生或沒有加載,直到我點擊導致以下錯誤的屏幕。意外的零窗口(空白的黑色屏幕)

編輯:我註釋掉的一切我的代碼中,它仍然收到此錯誤,以及已經創建了一個新的main.storyboard,還是無解...

unexpected nil window in _UIApplicationHandleEventFromQueueEvent, _windowServerHitTestWindow: <UIClassicWindow: 0x7f9f3a445190; frame = (0 0; 414 736); userInteractionEnabled = NO; gestureRecognizers = <NSArray: 0x7f9f3a510ed0>; layer = <UIWindowLayer: 0x7f9f3a4077d0>> 

我沒有任何改變我的代碼據我可以所以下面記得是我的整個視圖控制器接着我的應用程序委託

視圖控制器:

import UIKit 
import GoogleMaps 
import Parse 
import MediaPlayer 
import MobileCoreServices 


class ViewController: UIViewController { 
@IBOutlet weak var viewMap: GMSMapView! 



override func viewDidLoad() { 
    super.viewDidLoad() 

    let testObject = PFObject(className: "TestObject") 
    testObject["foo"] = "bar" 
    testObject.saveInBackgroundWithBlock { (success: Bool, error: NSError?) -> Void in 
     print("Object has been saved.") 
    } 

    let camera = GMSCameraPosition.cameraWithLatitude(33.600727, longitude: -117.900840, zoom: 16.9) 


    viewMap.camera = camera 
    viewMap.myLocationEnabled = true 
    viewMap.settings.myLocationButton = true 


    let marker = GMSMarker() 
    marker.position = CLLocationCoordinate2DMake(33.600727, -117.900840) 
    marker.title = "Newport Beach" 
    marker.snippet = "California" 
    marker.map = viewMap 

    // Do any additional setup after loading the view, typically from a nib. 
    let button = UIButton(type: UIButtonType.System) as UIButton 
    button.frame = CGRectMake(100, 100, 100, 50) 
    button.setTitle("Test Button", forState: UIControlState.Normal) 
    button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside) 

    self.view.addSubview(button) 
    Upload() 
} 



func Upload() { 
var path = NSBundle.mainBundle().pathForResource("/Users/matthewcarlson/Downloads/big_buck_bunny_720p_2mb.mp4", ofType: "mp4") 
var videodata: NSData? 
videodata = NSData.dataWithContentsOfMappedFile(path!) as? NSData 


let file = PFFile(name:"resume.txt", data:videodata!) 
file!.saveInBackground() 

} 


override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

@IBAction func snapNext(sender: AnyObject) { 
    let newLocation = GMSCameraPosition.cameraWithLatitude(33.622578, longitude: -117.911099, zoom: 16.9) 
    viewMap.camera = newLocation 



} 

func buttonAction(sender:UIButton!) 
{ 
    print("Button tapped") 

} 
} 

AppDelegate中:

import UIKit 
import GoogleMaps 
import Parse 
import Bolts 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 

var window: UIWindow? 


func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    // Override point for customization after application launch. 
    // Initialize Parse. 
    let configuration = ParseClientConfiguration { 
     $0.applicationId = "w4hfIKBxy5uHc9eHQ3GavJ4vT9qyJBzKoO66pyM5" 
     $0.clientKey = "jsZ8pfx6FfIVMlLUYvZ6MAdnBIltMiae5TgZWW9o" 
     $0.server = "https://parseapi.back4app.com/" 
    } 
    Parse.initializeWithConfiguration(configuration) 

    //initialize GoogleMaps 
    GMSServices.provideAPIKey("AIzaSyDClpTwyY3swY2rlLKejd1pCVurTkVuNGg") 
    return true 



} 

func applicationWillResignActive(application: UIApplication) { 
    // 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. 
} 

func applicationDidEnterBackground(application: UIApplication) { 
    // 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. 
} 

func applicationWillEnterForeground(application: UIApplication) { 
    // 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. 
} 

func applicationDidBecomeActive(application: UIApplication) { 
    // 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. 
} 

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


} 

任何幫助非常感謝我已經清理了構建,再次運行,並強制退出Xcode和模擬器迄今爲止沒有任何工作。

+0

我有一個空白main.storyboard,應用程序委託和視圖控制器,但此錯誤仍然發生,任何幫助表示讚賞。 – maz

回答

-2

更改代碼。 添加super.viewDidLoad在最後的功能不在第一個它可以解決您的問題。

+0

那什麼也沒做 – maz

0

嘗試以下解決方法:

  • 設置實例化一個UIWindow之前,你的狀態欄方向。

    (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    { 
        // Init my stuff 
        // ... 
        // Prepare window 
    [application setStatusBarOrientation:UIInterfaceOrientationPortrait animated:NO]; // prevent start orientation bug 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
    
  • 將「隱藏」設置爲YES,用於我主xib中的窗口。

  • 在窗口從根視圖控制器獲取其方向後設置框架。
  • 打開主xib文件並從左側找到「Window」,並啓用可見於啓動全屏啓動
  • 看看你的窗口筆尖文件,並確保它佔用全屏幕。

檢查這些相關的問題:

+0

請問你可以編輯那個代碼以便迅速我從未學過目標C – maz

+0

查看這些鏈接:http://stackoverflow.com/questions/26916009/ios-8-uiwindow-orientation-is-always-portrait和https://recalll.co/app/?q=ios%20-%20UIWindow%20with%20wrong%20size%20when%20using%20landscape%20orientation – abielita