]> git.saurik.com Git - cydia.git/commitdiff
"Oh, my God... they killed parentViewController!" v1.1.3
authorJay Freeman (saurik) <saurik@saurik.com>
Sat, 24 Dec 2011 06:41:50 +0000 (22:41 -0800)
committerJay Freeman (saurik) <saurik@saurik.com>
Sat, 24 Dec 2011 06:52:05 +0000 (22:52 -0800)
CyteKit/ViewController.h
CyteKit/ViewController.mm
CyteKit/WebViewController.mm
MobileCydia.mm

index f707ba28108d2bced7643c5e6c71ede853659d94..6cbff24820435a63a1d102d71c454d62156efe44 100644 (file)
@@ -48,6 +48,7 @@
 - (BOOL) hasLoaded;
 - (void) reloadData;
 - (void) unloadData;
+- (UIViewController *) parentOrPresentingViewController;
 @end
 
 @interface CyteViewController : UIViewController {
index a25da53e778e03a60d68db80c93a1ff8032df1ad..3d22f60abf52bc8656af8af70172d978ae962746 100644 (file)
@@ -59,6 +59,14 @@ extern bool IsWildcat_;
         [modal unloadData];
 }
 
+- (UIViewController *) parentOrPresentingViewController {
+    if (UIViewController *parent = [self parentViewController])
+        return parent;
+    if ([self respondsToSelector:@selector(presentingViewController)])
+        return [self presentingViewController];
+    return nil;
+}
+
 @end
 
 @implementation CyteViewController
index 25e9aebb9f9c8e215f55b325484740b39b68b766..cfe01f7018e914b0ce0b3af5c47ebfeb257f5d0e 100644 (file)
@@ -630,7 +630,7 @@ float CYScrollViewDecelerationRateNormal;
 // }}}
 
 - (void) close {
-    [[[self navigationController] parentViewController] dismissModalViewControllerAnimated:YES];
+    [[[self navigationController] parentOrPresentingViewController] dismissModalViewControllerAnimated:YES];
 }
 
 - (void) alertView:(UIAlertView *)alert clickedButtonAtIndex:(NSInteger)button {
@@ -714,7 +714,7 @@ float CYScrollViewDecelerationRateNormal;
         return nil;
 
     if (UINavigationController *navigation = [self navigationController])
-        if ([[navigation parentViewController] modalViewController] == navigation)
+        if ([[navigation parentOrPresentingViewController] modalViewController] == navigation)
             return [[[UIBarButtonItem alloc]
                 initWithTitle:UCLocalize("CLOSE")
                 style:UIBarButtonItemStylePlain
index 58a380ef8507d2b510c79907ffeab55d785c0b03..a011b9e0a004e0eba205ed53705100c0bfb04fe6 100644 (file)
@@ -6209,8 +6209,8 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) {
 
     CGRect kbframe = CGRectMake(round(center.x - bounds.size.width / 2.0), round(center.y - bounds.size.height / 2.0), bounds.size.width, bounds.size.height);
     UIViewController *base = self;
-    while ([base parentViewController] != nil)
-        base = [base parentViewController];
+    while ([base parentOrPresentingViewController] != nil)
+        base = [base parentOrPresentingViewController];
     CGRect viewframe = [[base view] convertRect:[list_ frame] fromView:[list_ superview]];
     CGRect intersection = CGRectIntersection(viewframe, kbframe);