2014-10-30 4 views
0

Я не знаю, как загрузить мою страницу, как есть, когда я нажимаю кнопку «Назад». У меня два типа раскадровки страниц и xib. Который отображает всю информацию. Когда я нажимаю кнопку «Перейти», она перейдет на новую страницу. Все это работает хорошо, Но моя проблема в том, что когда я нажимаю кнопку «Назад», мне нужна моя раскадровка, и файл xib должен отображаться в том же виде. Когда я запускаю свое приложение, он отображает только страницу раскадровки xib не загружается.вызов раскадровки и xib в том же viewcontroller?

Спасибо за заранее, вот мой код:

- (IBAction)back:(id)sender { 
    Recharge *view = [self.storyboard instantiateViewControllerWithIdentifier:@"Recharge"]; 
    [self presentViewController:view animated:YES completion:nil]; 
    self.recharge = [[mobileViewcontroller alloc]init]; 
    self.recharge.view.frame = CGRectMake(0,100, 400, 400); 
    [self addChildViewController:self.recharge]; 
    [self.view addSubview:self.recharge.view]; 
} 

ответ

0

Заменить код с

- (IBAction)back:(id)sender { 
    Recharge *rechargeView = [self.storyboard instantiateViewControllerWithIdentifier:@"Recharge"]; 
    [self presentViewController:rechargeView animated:YES completion:nil]; 

    self.recharge = [[mobileViewcontroller alloc]init]; 
    self.recharge.view.frame = CGRectMake(0,100, 400, 400); 
    [rechargeView addChildViewController:self.recharge]; 
    [rechargeView.view addSubview:self.recharge.view]; 
} 

И это будет работать.

Как вы добавляете ваш mobileViewcontroller просмотра на current viewController, которая не видна пользователю, вместо этого вы должны добавить свой mobileViewcontroller к в recharge viewController, который находится в иерархии и видна пользователю.

+0

действительно супер bro его работал поблагодарить u так много за ур помочь ... :) :) и еще один небольшой запрос на этой странице я ввел некоторые поля, я хочу восстановить то же значение, когда я нажимаю кнопку –

+0

Вы приветствуете. Итак, вы хотите восстановить значения на какой странице? – iHulk

+0

на странице MobileViewController i.e self.recharge = [[mobileViewcontroller alloc] init]; –

0

Я предполагаю, что Recharge является контроллер представления из раскадровки и mobileViewController является контроллером вид из XIb.

Вы вызываете неправильный конструктор для загрузки mobileViewController. Вам нужно использовать (instancetype)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle, чтобы загрузить его с помощью xib-файла. См https://developer.apple.com/library/ios/Documentation/UIKit/Reference/UIViewController_Class/index.html#//apple_ref/occ/instm/UIViewController/initWithNibName:bundle:

+0

может у написать код, чтобы загрузить мой раскадровки и XIb файл вместе –

+0

Uh, я даже дал вам метод инициализации для вызова. Это довольно прямолинейно. Замените 'self.recharge = [[mobileViewcontroller alloc] init];' с 'self.recharge = [[mobileViewcontroller alloc] initWithNibName: @" yournibname.xib "bundle: nil];' – anthonyliao

+0

его не работает bro :( –

0

когда вы вызываете новый диспетчер представлений с передачей того, что у вас есть, код, подобный этому, помещает весь код перед [self presentViewController: просмотр анимированного: ДА завершение: ноль];

попробовать это:

  • (IBAction) назад: (идентификатор) отправитель {

    Recharge * вид = [self.storyboard instantiateViewControllerWithIdentifier: @ "Перезарядка"];

    self.recharge = [[mobileViewcontroller alloc] init];

    self.recharge.view.frame = CGRectMake (0,100, 400, 400);

    [посмотреть addChildViewController: self.recharge];

    [посмотреть addSubview: self.recharge.view];

    [self presentViewController: просмотр анимированный: ДА завершение: ноль];

    }

+0

что u сделал то же самое, что я сделал, это не сработало в любом случае спасибо за ур время для этого ответа, я получил выход от Ihulk –

Смежные вопросы