這個畫面連結了兩個 Segue |
另外,如果只有一個 Segue 是從 UIButton 發生,可以這樣做:
- (IBAction)btnSyp:(id)sender {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
Game01VC *vc = [storyboard instantiateViewControllerWithIdentifier:@"CustomerAdd"];
vc.Flag = 1;
}
但是,第二個 UIButton 就無法如預期發生。
- (IBAction)btnKiller:(id)sender {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
Game01VC *vc = [storyboard instantiateViewControllerWithIdentifier:@"CustomerAdd"];
}
所以,還是要回來以 prepareForSegue 處理。
先在 Storyboard 內設定好 Segue 的 Identifier 為 @"btnSyp" 與 @"btnKiller"
在第一個 UIButton 連結的 Segue 設定 Identifier 為 @"btnSyp" |
另一個 UIButton 連結的 Segue 設定 Identifier 為 @"btnKiller" |
在 prepareForSegue 內的程式如下:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
Game01VC *vc = segue.destinationViewController;
// 原本在 -(IBAction)btnSyp:(id)sender 內的,移到這裡來,以這種方式做
if ([segue.identifier isEqualToString:@"btnSyp"]) {
vc.Flag = 1;
}
// 原本在 -(IBAction)btnKiller:(id)sender 內的,移到這裡來,以這種方式做
if ([segue.identifier isEqualToString:@"btnKiller"]) {
vc.Flag = 2;
}
}
如此,就可以讓下個 ViewController 收到 Object 或 Value 了。
.
讚
回覆刪除