Sono stati alle prese con questo per un po ', e non riesco mai a ottenere una risposta diretta.Come posso cambiare le viste a livello di programmazione in un controller di visualizzazione? (Xcode, iPhone)
Qualsiasi aiuto è apprezzato!
Sono stati alle prese con questo per un po ', e non riesco mai a ottenere una risposta diretta.Come posso cambiare le viste a livello di programmazione in un controller di visualizzazione? (Xcode, iPhone)
Qualsiasi aiuto è apprezzato!
Se siete in un controller di navigazione:
ViewController *viewController = [[ViewController alloc] init];
[self.navigationController pushViewController:viewController animated:YES];
o se volete semplicemente per presentare una nuova visione:
ViewController *viewController = [[ViewController alloc] init];
[self presentViewController:viewController animated:YES completion:nil];
[self.navigationController pushViewController:someViewController animated:YES];
Questo non funziona per me, importa che sto facendo nella tabellaView: didSelectRowAtIndexPath: method? – mishajw126
Se si desidera presentare una nuova vista a lo stesso storyboard,
In CurrentViewController.m,
#import "YourViewController.h"
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
YourViewController *viewController = (YourViewController *)[storyboard instantiateViewControllerWithIdentifier:@"YourViewControllerIdentifier"];
[self presentViewController:viewController animated:YES completion:nil];
Per impostare l'identificatore su un controller di visualizzazione, Aprire MainStoryBoard.storyboard. Seleziona YourViewController Visualizza-> Utilità -> ShowIdentityInspector. Qui puoi specificare l'identificatore.
In questo modo vengono visualizzate viste continue finché si preme una riga in una cella DynamicTableView, ad esempio: [collegamento] http://stackoverflow.com/questions/19329723/ipad-masterdetail-template –
ok, se viene chiamato lo story board Main.Storyboard, devi inserire solo @ "Main", anziché @ "Main.storyboard" – tong
Il instantiateViewControllerWithIdentifier
è il Storyboard ID
.
NextViewController *NVC = [self.storyboard instantiateViewControllerWithIdentifier:@"NextViewController"];
[self presentViewController:NVC animated:YES completion:nil];
questo ha funzionato per me:
NSTimer *switchTo = [NSTimer scheduledTimerWithTimeInterval:0.1
target:selfselector:@selector(switchToTimer)userInfo:nil repeats:NO];
- (void) switchToTimer {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"MyViewControllerID"]; // Storyboard ID
[self presentViewController:vc animated:FALSE completion:nil];
}
per chiudere la viewController chiamato con il codice risposte precedenti da CmdSft
ViewController *viewController = [[ViewController alloc] init];
[self presentViewController:viewController animated:YES completion:nil];
è possibile utilizzare
[self dismissViewControllerAnimated:YES completion: nil];
#import "YourViewController.h"
a spingere una vista tra cui la barra di navigazione e/o barra delle schede:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YourStoryboard" bundle:nil];
YourViewController *viewController = (YourViewcontroller *)[storyboard instantiateViewControllerWithIdentifier:@"YourViewControllerIdentifier"];
[self.navigationController pushViewController:viewController animated:YES];
Per impostare identificativo per un controller di vista, Open YourStoryboard.storyboard. Seleziona YourViewController View-> Utilities -> ShowIdentityInspector. Lì puoi specificare l'identificatore.
Swift versione:
Se ci si trova in un controller di navigazione:
let viewController: ViewController = self.storyboard?.instantiateViewControllerWithIdentifier("VC") as ViewController
self.navigationController?.pushViewController(viewController, animated: true)
Oppure, se si desidera solo per presentare una nuova visione:
let viewController: ViewController = self.storyboard?.instantiateViewControllerWithIdentifier("VC") as ViewController
self.presentViewController(viewController, animated: true, completion: nil)
Swift 3.0 Versione
se si desidera presentare il nuovo controller.
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "controllerIdentifier") as! YourController
self.present(viewController, animated: true, completion: nil)
e se si vuole spingere ad un altro controller (se è in navigazione)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "controllerIdentifier") as! YourController
self.navigationController?.pushViewController(viewController, animated: true)
Swift 3.0 in
una visualizzazione controller per secondviewcontroller andare:
let loginVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "MsgViewController") as! MsgViewController
self.navigationController?.pushViewController(loginVC, animated: true)
Secondo viewcontroller a 1stviewcontroller (indietro) per: di nuovo pulsante sul caso di azione: -
self.navigationController?.popViewController(animated:true)
3rdviewcontroller al 1 ° salto viewcontroller per
self.navigationController?.popToRootViewController(animated:true)
e più importante storyboard nella barra di navigazione unclicked assicurarsi che, questo ritorno azione eseguire
Solo per notare che 'presentModalViewController: animated:' è stato contrassegnato come deprecato nei [documenti UIViewController] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference. html). 'presentViewController: animated: completion:' dovrebbe invece essere usato. –
Aggiornato per riflettere. – SlateEntropy
Sono solo a questa domanda, se uso la seconda soluzione potrò tornare alla vista precedente e come? – user2533527