1.Вы можете сделать это с помощью блоков!
Вы можете передать некоторый блок в BottomView.
2. Или вы можете сделать это с помощью целевого действия.
вы можете перейти на селектор BottomView @selector(myMethod:)
как действие, и указатель на контроллер вида в качестве цели. И после окончания анимации используйте метод performeSelector:
.
3. Или вы можете определить делегат @protocol и реализовать методы в вашем ViewController, и добавить делегат недвижимости в BottomView. @property (назначить) id делегата;
Если вы сделать некоторые анимации в вашем BottomView, вы можете использовать UIView метод
animateWithDuration:delay:options:animations:completion:
, который использует блоки, как обратные вызовы
[UIView animateWithDuration:1.0f animations:^{
}];
обновление:
в ButtomView .h
@class BottomView;
@protocol BottomViewDelegate <NSObject>
- (void)bottomViewAnimationDone:(BottomView *) bottomView;
@end
@interface BottomView : UIView
@property (nonatomic, assign) id <BottomViewDelegate> delegate;
.....
@end
в ButtomView.м
- (void)notifyDelegateAboutAnimationDone {
if ([self.delegate respondsToSelector:@selector(bottomViewAnimationDone:)]) {
[self.delegate bottomViewAnimationDone:self];
}
}
и после анимации Complit вы должны вызвать [self notifyDelegateAboutAnimationDone];
вы должны установить вам ViewController класс для подтверждения протокола BottomViewDelegate
в MyViewController.h
@interface MyViewController : UIViewController <BottomViewDelegate>
...
@end
и F.E. в viewDidLoad
вы должны установить bottomView.delegate = self;
проверьте это http://stackoverflow.com/questions/1015608/how-to-perform-callbacks-in-objective-c – tkanzakic
Просто разъясните понятия о делетете/делегировании (http://developer.apple. com/library/ios/# documentation/Общие/Концептуальные/CocoaEncyclopedia/DelegatesandDataSources/DelegatesandDataSources.html) –
Как начать анимацию? –