2011-01-26 3 views
1

내 응용 프로그램에 NavigationController가있는 기본 MainWindow.xib가 있습니다.응용 프로그램이 시뮬레이터에서 작동하고 장치의 흰색 화면이

내 Main.cs :

namespace MyApp { 
    public class Application { 
    static void Main(string[] args) { 
     UIApplication.Main(args, null, "MyApp.AppDelegate"); 
    } 
    } 

    public class AppDelegate : UIApplicationDelegate { 
    UIWindow window; 

    // This method is invoked when the application has loaded its UI and its ready to run 
    public override bool FinishedLaunching(UIApplication app, NSDictionary options) { 
     RootViewController rootViewController = new RootViewController(); 

     UINavigationController navigationController = new UINavigationController(rootViewController); 
     navigationController.LoadView(); 
     navigationController.NavigationBar.BarStyle = UIBarStyle.Black; 

     window = new UIWindow(UIScreen.MainScreen.Bounds); 
     window.AddSubview(navigationController.View); 
     window.MakeKeyAndVisible(); 

     return true; 
    } 

    // This method is required in iPhoneOS 3.0 
    public override void OnActivated(UIApplication app) { 
    } 

    public override void WillTerminate(UIApplication app) { 
     //Save data here 
    } 
    } 
} 

내의 Info.plist 지금은 최근 HelloiPhone의 하단에 제공되는 예와 유사한 XIB없는 메인 윈도우와 RootViewController (의 UIViewController의 서브 클래스)로 전환 :

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
    <dict> 
    <key>UILaunchImageFile</key> 
    <string>images/logo_320x480.png</string> 
    <key>UIStatusBarStyle</key> 
    <string>UIStatusBarStyleBlackOpaque</string> 
    <key>UISupportedInterfaceOrientations</key> 
    <array> 
     <string>UIInterfaceOrientationPortrait</string> 
     <string>UIInterfaceOrientationPortraitUpsideDown</string> 
    </array> 
    </dict> 
</plist> 

시뮬레이터에서 모든 것이 잘된 것처럼 보입니다. 처음에는 시작 이미지가 표시되고 몇 초 후에 rootView가 나타납니다.

그러나 장치 (iPod touch)에 배포하면 rootView가 표시되지 않습니다. 대신 시작 이미지 이후 화면이 흰색으로 바뀝니다. (상단의 상태 표시 줄이 그대로 있습니다.)

이 방법에 문제가 있습니까? 내가 놓친 게 있니?

+0

어쩌면 차이는 없겠지만 "navigationController.LoadView();" 선. LoadView()는 컨트롤러의 View 속성에 액세스 할 때 호출되며 직접 호출하면 안됩니다. –

답변

1

흰색 화면이 XIB-이하로의 전환과 관련되지 않았습니다.

흰색 화면은 실제로 흰색 배경, 일부 이미지 및 배경 이미지와 흰색 글꼴 색이있는 일부 내 rootView입니다. 나는 "이미지"라는 폴더의 이름을 "Image"로 바꿨고 그 장치에서 대소 문자가 구별되었습니다. 이미지가 표시되지 않고 그 밖의 모든 것이 흰색 이었기 때문에 나는 그것을 보지 못했습니다.

xib-less로 전환하기 전에 장치에서 테스트를했다면 폴더 이름 바꾸기와 직접 관련되었을 수 있습니다.

1

당신은 여기에 몇 가지 유용한 정보를 찾을 수 있습니다

differences-between-iphone-ipod-simulator-and-devices

iphone-device-vs-iphone-simulator

+0

감사합니다. 유용한 정보가 있습니다. 비록 아무 관련이 없어도 – riha

+0

OK, 나는 명백한 것이 나왔다. 흰색 화면은 xib-less로 전환하는 것과 관련이 없습니다. 흰색 화면은 실제로 내 rootView와 흰색 배경, 일부 이미지 및 배경 이미지와 흰색 글꼴 색이있는 일부 단추입니다. 나는 "이미지"라는 폴더의 이름을 "Image"로 바꿨고 그 장치에서 대소 문자가 구별되었습니다. 이미지가 표시되지 않고 그 밖의 모든 것이 흰색 이었기 때문에 나는 그것을 보지 못했습니다. xib-less로 전환하기 전에 장치에서 테스트를했다면 폴더 이름 바꾸기와 직접 관련 될 수있었습니다. – riha

+0

@riha 글쎄요, 다행 이네요. 정렬되어 있어요. –