我有一個ViewController
,具有UIButton
執行以下操作:你可以通過dismissModalViewControllerAnimated返回數據嗎?還是你需要一個返回旅程的繼續?
- (IBAction)buttonClicked:(id)sender
{
NSLog(@"Button clicked, lets move to next controller to do stuff");
[self performSegueWithIdentifier:@"toNextController" sender:nil];
}
這只是移動到我的下一個ViewController
,沒有什麼驚人至今。
在第二個ViewController中,我將執行一些應用程序邏輯,然後返回。
- (IBAction)backButtonPressed:(id)sender
{
NSLog(@"Back button clicked, lets just drop out of here...");
[self dismissModalViewControllerAnimated:YES];
}
- (IBAction)saveButtonPressed:(id)sender
{
NSLog(@"save button clicked, lets send some data back");
[self performSegueWithIdentifier:@"backToMain" sender:nil];
}
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"backToMain"])
{
NSLog(@"Preparing segue for backToMain");
// Obtain handles on the current and destination controllers
MainController * startingViewController;
SecondController * destinationController;
startingViewController = (MainController *) segue.sourceViewController;
destinationController = (SecondController *) segue.destinationViewController;
// set data on the main controller
startingViewController.myString = @"SomeDummyString";
}
}
我已經試過到目前爲止做的,是創建一個鏈接返回到主控制器,並執行SEGUE前,搶在其上的手柄和固定數據的第二SEGUE。我不確定這是否是最好的導航方式。
問:
是否有可能,做一個[self dismissModalViewControllerAnimated:YES];
時返回數據,或者你需要實現回程車一個SEGUE?
我不會執行另一個segue回到第一個控制器。據我瞭解,這創建了一個全新的Controller類實例,實際上你只是在越來越多的控制器上添加更多的控制器,因爲它們彼此來回移動。我會使用委託/協議方法。看到這個:http://stackoverflow.com/questions/10841653/create-a-modal-view-with-navigation-bar-and-back-button/10841897#10841897 –