навигационный контроллер, вызывающий сбой приложения - PullRequest
0 голосов
/ 26 марта 2012

Я добавил контроллер навигации в свое приложение в didFinishLaunchingWithOptions, как это

LoginViewController *mainView = [[[LoginViewController alloc]initWithNibName:@"LoginViewController" bundle:nil] autorelease];
navigationController = [[[UINavigationController alloc]initWithRootViewController:mainView]autorelease];
[self.window addSubview:navigationController.view];
[self.window makeKeyAndVisible];

И в viewDidLoad моего LoginViewController у меня есть,

self.navigationItem.hidesBackButton = YES;
[super viewDidLoad];

UIImage *img = [[UIImage alloc] init];
img = [UIImage imageNamed:@"top_bar.png"];
bar = [self.navigationController navigationBar];
[bar setBackgroundImage:img forBarMetrics:UIBarMetricsDefault];

UIImage *signIn = [UIImage imageNamed:@"signin_btn.png"];
UIButton *phButton = [UIButton buttonWithType:UIButtonTypeCustom];
[phButton setImage:signIn forState:UIControlStateNormal];
phButton.frame = CGRectMake(0.0, 0.0, signIn.size.width, signIn.size.height);
UIBarButtonItem *phBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:phButton];
self.navigationItem.rightBarButtonItem = phBarButtonItem;
[phButton addTarget:self action:@selector(checkConnection) forControlEvents:UIControlEventTouchUpInside];
[phButton release];

Когда я запускаю приложение в своем телефоне, оносбои.Когда я удаляю навигационный контроллер из appDelagate, он работает ... Да, я не могу заставить мою навигацию работать должным образом и как я могу избежать ее сбоя.

Ответы [ 5 ]

2 голосов
/ 26 марта 2012

Измените ваш код

попробуйте этот код Объявите файл appdelete.h

@class LoginViewController;  

LoginViewController *viewController; 
@property (nonatomic, retain) IBOutlet LoginViewController *viewController;

файл appdelegate.m объявляет

@synthesize viewController; 

в didFinishLaunchingWithOptions

UINavigationController *nav=[[UINavigationController alloc] initWithRootViewController:viewController];
[window addSubview:nav.view];
[window makeKeyAndVisible];
return YES;

  -(void) dealloc
 {
 [viewController release]; 
 ......//some code
 }
0 голосов
/ 26 марта 2012

[релиз phButton]; удалить эту строку &

img & phBarButtonItem * Необходимо освободить 1006 *

0 голосов
/ 26 марта 2012

Я думаю, что проблема с вашим автоматическим выпуском с контроллером навигации.

  1. вы пытаетесь удалить autorelease или

navigationController = [[UINavigationController alloc] initWithRootViewController: mainView];

  1. попробуйте использовать свойство (если есть),

self.navigationController = [[[UINavigationController alloc] initWithRootViewController: mainView] autorelease];

0 голосов
/ 26 марта 2012

Попробуйте это ...

self.window.rootViewController = navigationController;

вместо [self.window addSubview:navigationController.view];

0 голосов
/ 26 марта 2012

У меня это вызывает сбой.

[phButton release];

phButton не нужно выпускать;

Кстати,

phBarButtonItem необходимо освободить;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...