0

我创建了一个新的应用程序视图。这里有一些主要代码:

// AppDelegate.h

@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
    UINavigationController *navigationController;
    MIAPreferences *preferences;
}

@property (strong, nonatomic) UINavigationController *navigationController;
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) MIAPreferences *preferences;

// AppDelegate.m

@implementation AppDelegate

@synthesize window = _window;
@synthesize navigationController;
@synthesize preferences;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

    // Override point for customization after application launch.
    UIViewController *rootController = [[HomeViewController alloc] initWithNibName:nil bundle:nil];

    navigationController = [[UINavigationController alloc]
                            initWithRootViewController:rootController];
    navigationController.navigationBar.hidden = YES;

    self.window = [[UIWindow alloc]
                   initWithFrame:[[UIScreen mainScreen] bounds]];

    _window.rootViewController = navigationController;
    [self.window makeKeyAndVisible];

    return YES;
}



// HomeViewController.m

-(IBAction)openLogin
{
    LoginViewController *view = [[LoginViewController alloc] initWithNibName:nil bundle:nil];

    // 1
    [self.navigationController presentViewController:view animated:YES completion:nil];

    // 2
    [self.navigationController pushViewController:view animated:YES];

    // 3
    [self presentViewController:view animated:YES completion:nil];
}

所有 3 个选项都返回一个 EXC_BAD_ACCESS (code=2, address=....)

你能帮我理解如何解决这个问题吗?

更新

问题是由于在 AddDelegate 加载期间设置了 UIButton 外观……但第一个按钮在我要加载的 UIView 中……这就是它崩溃的原因-.-”

4

2 回答 2

1

它可能意味着:(1)用于指向内存正常的指针,但其块已被释放或(2)指针已损坏。如果您还没有,您可以尝试使用僵尸模式来获取更多信息。在 XCode 中按 Command、option 和 I 键,应该会弹出一个屏幕。选择左侧的运行选项,然后选择诊断,并在内存管理下启用僵尸对象。

于 2013-10-02T19:36:29.117 回答
1

检查viewafter的值initWithNibName:init'ing 与nilnib 名称对我来说看起来不对,您可能正在尝试将nil视图控制器推送到导航堆栈上。

于 2013-10-02T19:36:59.053 回答