Переход с одного вида на другой с помощью UIButton (UINavigationController) - PullRequest
0 голосов
/ 04 марта 2012

Я перепробовал каждое решение в Google, и, похоже, ничего не работает. До сих пор я реализовал UINavigationController с приложением «Делегат», теперь все, что я хочу сделать, - это перейти на WebViewController , щелкнув UIButton, который я создал в конструкторе интерфейса, но кнопка не кажется делать что-либо, когда я запускаю приложение. Имейте в виду, что я хочу, чтобы подтолкнул к моему WebViewController представлению.

AppDelegate.m

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

    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];  
    [self.window addSubview:navigationController.view];

    [self.window makeKeyAndVisible];
    return YES;
}

ViewController.m

- (IBAction)createFile:(id)sender {
    WebViewController *webViewController = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:NSBundle.mainBundle];
    [self.navigationController pushViewController:webViewController animated:YES];
}

Примечание: В конструкторе интерфейсов я уже подключил createFile к кнопке.

Я понимаю, что это обычно что-то, что называется супер легким, но по какой-то причине я просто никогда не заставлял его работать. Заранее спасибо.

РЕДАКТИРОВАТЬ: Я добавил свойство сохранения, синтезировал его и добавил в свой код в файле ViewController.m:

WebViewController *webViewController = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:NSBundle.mainBundle];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:webViewController];
[self.navigationController pushViewController:webViewController animated:YES];

Но теперь приложение вылетает при нажатии кнопки и возвращается с SIGABRT: « Повторное нажатие на один и тот же экземпляр контроллера представления не поддерживается (WebViewController: 0x1ed70e80) »

Ответы [ 2 ]

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

попробуй

-(IBAction)createFile:(id)sender{
    WebViewController *webViewController = [[WebViewController alloc]
     initWithNibName:@"WebViewController" bundle:nil];
    webViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:webViewController animated:YES];
}
0 голосов
/ 04 марта 2012

Одна вещь, которую я заметил, заключается в том, что вы не сохраняете свой navigController в appDelegate. Так что может случиться так, что ваше представление navigationControllers может присутствовать и сохраняться (от all до addSubView), но контроллер навигации мог быть освобожден.

в вашем AppDelegate попробуйте сделать Навигационный контроллер сохраняющим свойством

@property (nonatomic, strong) UINavigationController *navigationController

в вашем файле .m

@synthesize navigationController

, а затем

Редактировать: Обновлено для добавления контроллера вида

WebViewController *webViewController = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:NSBundle.mainBundle];
[self.navigationController pushViewController:webViewController animated:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...