-1

私はこの本を学ぼうとしていますが、すべての例はストーリーボードなしであり、アプリケーションを構築しようとしたときに次のエラーが発生しました:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Application windows are expected to have a root view controller at the end of application launch'

私はこれでそれを修正しようとしました:

ViewController *myView = [[ViewController alloc] init];
[self.window addSubview:myView];
self.window.rootViewController = myView;

しかし、その後、別のエラーを受け取りました:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[HypnoView _preferredInterfaceOrientationGivenCurrentOrientation:]: unrecognized selector sent to instance 0x78f68730'

誰かが私になぜそれが起こっているのか説明できますか?

4

6 に答える 6

1

AppDelegate.m に移動

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
    self.window.rootViewController = self.viewController;
    return YES;
}
于 2016-05-04T12:02:32.863 に答える
1

まず、追加することはできません

UIViewController 

サブビューとして

方法

addSubview:(UIView *)

UIview が必要であり、UIViewController を追加しています。

サブビューの追加は iOS 4 以前で使用されていましたが、ビュー コントローラーを rootviewcontroller として追加します。

したがって、単純に追加します。

self.window.rootViewController = myView

addSubview を使用する場合は、これを行う必要があります

[self.window addSubView:myView.view]
于 2016-05-04T11:58:15.160 に答える
0

Objective-c

@interface AppDelegate () 
    @property (nonatomic, strong) ViewController *viewController;
@end


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

    [self setViewController:[[ViewController alloc] init]];

    [self setWindow:[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]];
    [[self window] setBackgroundColor:[UIColor redColor];
    [[self window] setRootViewController:[self viewController]];
    [[self window] makeKeyAndVisible];

    return YES;
}

迅速

var window: UIWindow?
let viewController = ViewController();

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    self.window!.backgroundColor = UIColor.redColor()
    self.window!.rootViewController = playerController
    self.window!.makeKeyAndVisible()

    return true
}
于 2016-05-04T12:47:40.910 に答える
0

このコードを試してください

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
_window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

ViewController *controller = [[ViewController alloc]initWithNibName:@"View" bundle:nil];
UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:controller];
[self.window setRootViewController:nav];
[self.window makeKeyAndVisible];
return YES;
}
于 2016-05-04T12:54:31.770 に答える
0

それはこのように行われます。AppDelegate.m に移動し、- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions に移動します

ViewController *myView = [[ViewController alloc] init];
self.window.rootViewController = myView;
[self.window makeKeyAndVisible];

UIView をサブビューとして追加する場合。次に、次の操作を行います。

UIView *view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window makeKeyAndVisible];
[self.window addSubview:view];
于 2016-05-04T12:39:51.590 に答える
-1

設定する必要があります:-

AppDelegate.m ファイル内:_applicationDidFinishLaunchingWithOptions_

UIView *myView;
    self.window.rootViewController = myView

        myView= self.viewController;
        [self.window makeKeyAndVisible];
于 2016-05-04T11:57:53.287 に答える