私はviewControllerにcontainerViewを持っています。私のviewControllerにはUISegmentedControlがあります。Objective-cでselectedSegmentIndexをcontainerViewに送信するにはどうすればよいですか?
この選択したselectedSegmentIndexをこの瞬間とこれを変更するたびにどのように送信できますか?
私はprepareForSegueで次のクラスのプロパティを試していますが、これは最初の読み込み時にのみ送信されます。 ありがとう!
その後編集私が取得しています: - [ViewControllerをcontainerViewDidChangeSegmentIndex:]:認識されていないセレクタがFirstViewController(これは選択とcontainerViewが含まれています)
ViewController.h
インスタンスに0x7f8db16286d0を送りました
@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UISegmentedControl *select;
@property (weak, nonatomic) IBOutlet UIView *container;
@property(nonatomic, assign) ContainerViewController * classLevelReference;
@end
ViewController.m
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[_select addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];
}
- (void)segmentChanged:(UISegmentedControl *)segment{
//since you've reference to your container view here, you can directly call its method here:
[self.classLevelReference containerViewDidChangeSegmentIndex:segment.selectedSegmentIndex];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
//don't forget to check the segue id, if you've multiple segues
ContainerViewController *containerView = [segue destinationViewController];
self.classLevelReference = self;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
ContainerViewController.h
@interface ContainerViewController : UIViewController
- (void)containerViewDidChangeSegmentIndex:(NSInteger)updatedIndex;
@end
ContainerView.m
@implementation ContainerViewController
- (void)containerViewDidChangeSegmentIndex:(NSInteger)updatedIndex{
//Do whatever you want with your updated index
NSLog(@"changing");
}
@end
ありがとうございます! classLevelReferenceはどんな型ですか? – user3745888
'ContainerViewController * classLevelReference;' –
私は警告を受け取りました: "Incompatibleポインタ型はFirstViewControllerからContainerViewControllerにasssignning" self.classLevelReference = self;私のアプリはNSInvalidArgumentExceptionでクラッシュします。containerViewDidChangeSegmentIndex:解決策は何か分かりますか? – user3745888