#import "RVBook.h"
+extern bool IsWildcat_;
+
+@implementation UIViewController (Cydia)
+
+- (BOOL) hasLoaded {
+ return YES;
+}
+
+@end
+
@implementation CYViewController
- (void) setDelegate:(id)delegate {
delegate_ = delegate;
}
+- (id) delegate {
+ return delegate_;
+}
+
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
- if (!loaded_)
+ // Load on first appearance. We don't need to set the loaded flag here
+ // because it is set for us the first time -reloadData is called.
+ if (![self hasLoaded])
[self reloadData];
}
+- (BOOL) hasLoaded {
+ return loaded_;
+}
+
- (void) releaseSubviews {
// Do nothing.
}
- (void) setView:(UIView *)view {
+ // Nasty hack for 2.x-compatibility. In 3.0+, we can and
+ // should just override -viewDidUnload instead.
if (view == nil)
[self releaseSubviews];
}
- (void) reloadData {
+ // This is called automatically on the first appearance of a controller,
+ // or any other time it needs to reload the information shown. However (!),
+ // this is not called by any tab bar or navigation controller's -reloadData
+ // method unless this controller returns YES from -hadLoaded.
loaded_ = YES;
}
}
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation {
- return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad || orientation == UIInterfaceOrientationPortrait);
+ return IsWildcat_ || orientation == UIInterfaceOrientationPortrait;
}
@end