// RootViewViewController.h
#import <UIKit/UIKit.h>
#import "SettingsViewController.h"
#import "OneSlotViewController.h"
#import "TwoSlotViewController.h"
#import "BingoSlotViewController.h"
#import "SettingsViewController.h"
@interface RootViewViewController : UIViewController{
IBOutlet UIButton *owaru;
OneSlotViewController *oneSlotViewController;
TwoSlotViewController *button2ViewController;
BingoSlotViewController *button3ViewController;
UIViewController *pushedController;
UIButton *hajimekara;
SettingsViewController *settingsVc;
}
@property (retain, nonatomic) UIButton *hajimekara;
@property (strong, nonatomic) IBOutlet UIButton *owaru;
@property (nonatomic, retain) OneSlotViewController *button1ViewController;
@property (nonatomic, retain) TwoSlotViewController *button2ViewController;
@property (nonatomic, retain) BingoSlotViewController *button3ViewController;
@property (nonatomic, retain) UIViewController *pushedController;
@property (nonatomic, retain) SettingsViewController *settingsVc;
// RootViewViewController.m
@synthesize button1ViewController;
@synthesize button2ViewController;
@synthesize button3ViewController;
@synthesize pushedController;
@synthesize settingsVc;
-(IBAction) startButtonPressed:(id) sender {
if (self.settingsVc.pushedController!=nil) {
NSLog(@"push");
[self presentViewController:self.settingsVc.pushedController animated:YES completion:NULL];
}
}
// SettingViewController.h
#import "OneSlotViewController.h"
#import "TwoSlotViewController.h"
#import "BingoSlotViewController.h"
#import "SettingsViewController.h"
#import "AGImagePickerController.h"
@class RootViewViewController;
@interface SettingsViewController : UIViewController<UINavigationControllerDelegate, UIImagePickerControllerDelegate, UIPopoverControllerDelegate,UIScrollViewDelegate>{
OneSlotViewController *oneSlotViewController;
TwoSlotViewController *button2ViewController;
BingoSlotViewController *button3ViewController;
UIViewController *pushedController;
RootViewViewController *mainVc;
UIImageView *lastPriceView;
CustomImagePicker *_imagePicker;
UINavigationController *navController;
}
@property (nonatomic, retain) UIPopoverController *popoverController;
@property (nonatomic, retain) OneSlotViewController *button1ViewController;
@property (nonatomic, retain) TwoSlotViewController *button2ViewController;
@property (nonatomic, retain) BingoSlotViewController *button3ViewController;
@property (nonatomic, retain) UIViewController *pushedController;
@property (nonatomic, retain) RootViewViewController *mainVc;
@property (strong, nonatomic) IBOutlet UIImageView *lastPriceView;
@property (nonatomic, retain) CustomImagePicker *imagePicker;
@property (nonatomic, retain) IBOutlet UINavigationController *navController;
// SettingViewController.m
-(IBAction) button1Pressed:(id)sender {
if (self.button1ViewController==nil) {
button1ViewController = [[OneSlotViewController alloc] init];
}
self.pushedController = button1ViewController;
}
-(IBAction) button2Pressed:(id)sender {
if (self.button2ViewController==nil) {
button2ViewController = [[TwoSlotViewController alloc] init];
}
self.pushedController = button2ViewController;
}
-(IBAction) button3Pressed:(id)sender {
if (self.button3ViewController==nil) {
button3ViewController = [[BingoSlotViewController alloc] init];
}
self.pushedController = button3ViewController;
}
我已经声明了两个控制器的实例。 只要在SettingsViewController中按下一个按钮,它就会将ViewController传递给MainViewController的startButton。 但我似乎无法使其发挥作用。谢谢你的帮助。
答案 0 :(得分:1)
SettingsViewController.pushedController和MainViewController.pushedController是单独的变量。改变一个不会影响另一个。
您有两种选择。您需要将SettingsViewController存储在MainViewController中,或者将MainViewController传递给SettingsViewController。
如果MainViewController保留对SettingsViewController的引用,那么您可以:
-(IBAction) startButtonPressed:(id) sender {
if (self.settingsViewController.pushedController!=nil) {
NSLog(@"push");
[self presentViewController:self.settingsViewController.pushedController animated:YES completion:NULL];
}
}
如果SettingsViewController传递了对MainViewController的引用,那么您可以:
-(IBAction) button1Pressed:(id)sender {
if (self.button1ViewController==nil) {
button1ViewController = [[ViewOneController alloc] init];
}
self.mainViewController.pushedController = button1ViewController;
}
-(IBAction) button2Pressed:(id)sender {
if (self.button2ViewController==nil) {
button2ViewController = [[ViewTwoController alloc] init];
}
self.mainViewController.pushedController = button2ViewController;
}
-(IBAction) button3Pressed:(id)sender {
if (self.button3ViewController==nil) {
button3ViewController = [[ViewThreeController alloc] init];
}
self.mainViewController.pushedController = button3ViewController;
}
选择其中一项,你应该没事。