2012-12-07 2 views
-1

привет, я создал два контроллера вида на раскадровку, я хотел программно перейти от одного контроллера представления к другому контроллеру представления. Я создал кнопку в одном контроллере представления. я знаю, что очень легко перейти от одного контроллера вида к другому, просто перетащите линию с кнопки от контроллера oneviewcontroller до второго. но я хочу сделать это программно, потому что у меня есть if и else условия в кнопке, если условие true, то я хочу переместить его в следующий контроллер представления, это код.Как перейти от контроллера представления к другому контроллеру представления в storybaord программно

-(IBAction)loadView:(id)sender { 
    if([username.text isEqualToString:@"adnan"] && [password.text isEqualToString:@"bhatti123"]) 
    { 
     // here i want to write that code which reach me to second view controller which i implement on storyboard 

    } 
    else 
    { 

    } 
} 

ответ

3

Перетащите линия от первого контроллера представления на второй и установить идентификатор Segue:

В .m файле:

if([username.text isEqualToString:@"adnan"] && [password.text isEqualToString:@"bhatti123"]) 
{ 
    [self performSegueWithIdentifier:@"nextView" sender:sender]; 
} 
else 
{ 

} 
+0

вы отличный человек, которого знаете, что я хочу, любовь, человек, много спасибо –

+0

Как передать значения следующему контроллеру представления с помощью этого метода? – Aniruddha

+0

@Aniruddha, вам нужно написать метод 'prepareForSegue: sender:' в контроллере первого представления и получить 'destinationViewController', который является экземпляром следующего контроллера представления. Вы можете получить доступ к его свойствам и передать значения. ([Пример] (http://stackoverflow.com/a/8597092/683917)). – ifau

2
-(IBAction)loadView:(id)sender 
{ 
     if([username.text isEqualToString:@"adnan"] && [password.text isEqualToString:@"bhatti123"]) 
     { 
       // here i want to write that code which reach me to second view controller which i implement on storyboard  
      SecondViewController *objSecondViewController = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil]; 
      [self.navigationController pushViewController:objSecondViewController animated:YES]; 
      [objSecondViewController release]; 
     }    
    else  
    { 
     //write your else part code here 
    } 
} 

UPDATE:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil]; 
SecondViewController *objSecondViewController = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"]; 
[self.navigationController pushViewController:objSecondViewController animated:YES]; 
+0

Но как я могу знать, на раскадровке, что это NIB ФАЙЛА НА раскадровке ТАМ БОЛЬШЕ ONE VIEW CONTROLLER ON раскадровке ТОГДА КАК I INIT SECONDVIEWCONTROLLER С INITWITHNIBNAME –

+0

затем просто установите класс и нажмите или представьте его .. также, когда вы создаете nib в то время, вы даете имя правильному правилу? –

+0

@AdnanQadir также см. Этот ответ чувак http://stackoverflow.com/questions/7889510/ios-5-storyboard-programmatically-determine-path :) –

0
SecondViewController *secondviewController = [[SecondViewController alloc] init]; 
[self presentviewController:secondviewController animation:YES completion:nil]; 

Надеется, что это помогает ...

+0

НО КАК Я МОЖЕТ ЗНАТЬ НА СТРОЙБОРЮ, ЧТО ЭТО ТАКОЕ ФАЙЛ NIB НА СТРОЙБОРЕ, БОЛЬШЕ ТОГО, ЧЕМ ОДИН ПРОСМОТР КОНТРОЛЛЕР НА СТРОЙБОРЕ, ТО, КАК Я ИНИЦИАТИВЫ SECONDVIEWCONTROLLER С INITWITHNIBNAME –

+0

дорогой, есть более одного контроллера вида на раскадровке i не хочу создавать новый uiview с помощью объекта –

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