助けてください!簡単そうに見えますが、機能していないので、申し訳ありませんが、質問する必要があります。UITableViewを備えたメインビューがあります。スワイプすると、ピッカーとボタンを持つサブビューが追加されます。スワイプするとメインビューの前にサブビューが表示されますが、ピッカーまたはボタンをクリックしても、サブビューでは実際には何も起こりません。代わりに、メインビュー(サブビューの下にある)のコンポーネントが呼び出されます!これは確かに言っています。メインビューでは、追加されたサブビューの下に画像があります(画像をタップすると新しいビューが開きます)。これで、サブビューでピッカーをタップすると(メインビューでは画像がその下にあります)、画像がタップされて新しいビューが開きます。これはどのように可能ですか?
これは(Interface Builderの)サブビューです
これが私のコードスニペットです:
私のMainViewController.m(viewCtrlrFilterは、ユーザーがメインビューをスワイプしたときに追加されるサブビューです)):
....
self.viewCtrlrFilter = (ViewController_Filter *) [myStoryboard instantiateViewControllerWithIdentifier:kNameViewCtrlrFilter];
...
// This is called when the user pans/swipes
// This does work fine; the subview gets added & is visible
[self.viewCtrlrFilter initializeView];
[self.viewCtrlr.view setFrame:CGRectMake(310.0, 220.0, 243.0, 208.0)];
[self.view addSubview:self.viewCtrlrFilter.view];
...
ViewController_Filter.hから:
...
// This implements the Picker Delegate & DataSource
// which I have wired to the picker in IB
@interface ViewController_FilterPhotographers : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>
...
// This is called when the button in the subview
// (screenshot above) is pressed
// It's wired through the IB
-(IBAction) buttonPressed:(id) sender;
...
ViewController_Filter.mから:
-(void) initializeView {
self.myPicker.delegate = self;
self.myPicker.dataSource = self;
self.myPicker.showsSelectionIndicator = YES;
CGRect rect = self.myPicker.frame;
rect.origin = CGPointMake(0.0, 0.0);
self.myPicker.frame = rect;
self.myPicker.transform = CGAffineTransformMakeScale(0.625,0.625);
[self.myPicker becomeFirstResponder];
}
...
-(IBAction) buttonPressed:(id) sender {
NSLog(@"hi");
}
...
- (void)viewDidLoad
{
[super viewDidLoad];
[self initializeView];
}
...
ユーザーがスワイプすると、サブビューが追加されます(ピッカーとボタンが表示されます)が、ボタンをクリックしても、IBActionメソッドが呼び出されません。代わりに、おかしなことに、メインビュー(サブビューの下)のコンポーネントが呼び出されています!