0

내 응용 프로그램에 UITabBarItemUIButton을 사용하는 중에 문제가 발생했습니다. 내 버튼은 UITabBarItem 안에 있습니다. 그것을 누르면 PDF를 표시하기 위해 다른 컨트롤러로 푸시되고 싶습니다. 여기 UITabBarItem에서 UIViewController로 푸시

다른 경우에 작동하는 코드 조각입니다 :

- (void)viewDidLoad { 
    UIImage* imageButton = [UIImage imageNamed:@"pdf-button.png"]; 
    UIButton *buttonPDF = [UIButton buttonWithType:UIButtonTypeCustom]; 
    buttonPDF.frame = CGRectMake(SCREEN_WIDTH/2 - 100, 100, 200, 36); 
    [buttonPDF setImage:imageButton forState:UIControlStateNormal]; 
    buttonPDF.contentMode = UIViewContentModeScaleAspectFit; 
    buttonPDF.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill; 
    [buttonPDF addTarget:self action:@selector(displayPDFParams:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.view addSubview:buttonPDF]; 
} 

-(void)displayPDFParams:(UIButton *)sender { 
    PDFProduitController *pdfController = [[PDFProduitController alloc] init]; 
    pdfController.pdf = documentParametres; 
    [self.navigationController pushViewController:pdfController animated:YES]; 
} 

displayPDFParams라고하지만 내 pdfController에 나를 밀어 없습니다. 내 응용 프로그램의 부모 탐색 컨트롤러를 타겟팅 할 수 없기 때문에 그것이라고 생각합니다 ... 누구든지 도움을 많이 주시면 감사하겠습니다. 미리 감사드립니다!

답변

1

문제에서 당신의 AppDelegate.h

#import <UIKit/UIKit.h> 
#import "HomeViewController.h" 
@class HomeViewController; 
@interface IDSAppDelegate : UIResponder <UIApplicationDelegate>{ 
    UINavigationController *nav; 
} 
@property (strong, nonatomic) HomeViewController *homeViewController; 
@end 

에서

:

@property (nonatomic, retain) UINavigationController *superNavController; 

는 그리고 내 UITabBarController가에서 설정 : 완벽

-(void)displayPDFParams:(UIButton *)sender { 

    PDFProduitController *pdfController = [[PDFProduitController alloc] init]; 
    pdfController.pdf = self.documentParametres; 

    [self.superNavController pushViewController:pdfController animated:YES]; 

} 

작품 :

self.myViewController.superNavController = self.navigationController; 

마지막으로 내 displayPDFParams 방법을 수정!

1

네비게이션 컨트롤러로 루트보기 컨트롤러를 초기화해야합니다. 여기에 코드가 있습니다. 이 같은 (UITabBarItem로) 내의 UIViewController의 속성을 정의함으로써 해결하여 AppDelegate.m

#import "IDSAppDelegate.h" 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    self.homeViewController = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil]; 
    nav=[[UINavigationController alloc]initWithRootViewController:self.homeViewController]; 
    self.window.rootViewController = nav; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 
+1

그 화격자는 ... thx Ashish .... –

관련 문제