启动时自定义视图控制器

Posted

技术标签:

【中文标题】启动时自定义视图控制器【英文标题】:Custom View Controller on launching 【发布时间】:2015-06-29 05:30:04 【问题描述】:

离开网格几年后,我重新编写了一个快速的 ios 应用程序,我不得不说我似乎需要回到正轨。 :D

我只是想在启动应用程序时设置Login 视图,但我遇到了以下问题,我已经阅读了很多但无法解决它。模拟在main.m (@autoreleasepool) 上停止。

仅供参考:我没有使用 Xib 或 Storyboard,因为我正在尝试以编程方式完成所有操作。

libc++abi.dyLibL terminating with uncaught exception of type NSException

它可能来自以下之一。 LoginViewController.h:

@interface LoginViewController : UIViewController 
@end

Test1 / LoginViewController.m:

我想应该有一个从UIViewController 定义的init 方法,所以我不需要在这里定义一个。

@implementation LoginViewController
@end

Test2 / LoginViewController.m: 试图用我的自定义 init 函数覆盖。也没有运气。

@implementation LoginViewController
- (id) init

self = [super initWithNibName:nil bundle:nil];
return self;

@end

AppDelegate.m:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
LoginViewController *loginViewController = [[LoginViewController init] alloc];
// error here
self.window.rootViewController = loginViewController;
[self.window makeKeyAndVisible];
return YES;

不确定这里到底出了什么问题,但它在模拟器上看到黑色 iPhone 屏幕后立即崩溃。

任何帮助表示赞赏! ;)

谢谢。

【问题讨论】:

删除第一行self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 恐怕不会改变任何事情。 self = [super initWithNibName:nil bundle:nil];更改为 self = [super init]; 不幸的是同样的问题。 【参考方案1】:

改变这一行

LoginViewController *loginViewController = [[LoginViewController init] alloc];

LoginViewController *loginViewController = [[LoginViewController alloc] init];

【讨论】:

我什至不知道该说什么……现在它起作用了。就像我说的那样,我真的需要重新开始……非常感谢!我会尽快接受作为答案。

以上是关于启动时自定义视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

状态更改时自定义 SwiftUI 视图不会更新

删除按钮出现时自定义表格视图单元格中缺少 UISlider 宽度的动画

导入presentationMode环境变量时自定义NavigationView搞砸了

Django:在编辑模型时自定义 FileField 值

Django:在编辑模型时自定义FileField值

滚动时自定义uitableviewcell空白