出于某种原因,我在应用程序中显示来自辅助视图控制器的视图时遇到问题 我的主视图控制器调用另一个负责加载pdf视图的视图控制器。
MainViewController中的代码如下所示:
- (int)openPDF
{
[self loadSettingsWithDefaults];
RDPDFViewController *m_pdf;
if( m_pdf == nil )
{
m_pdf = [[RDPDFViewController alloc] initWithNibName:@"RDPDFViewController"bundle:nil];
}
int result = [m_pdf PDFOpen:@"/Users/steve/test.pdf" withPassword:@""];
if(result == 1)
{
m_pdf.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:m_pdf animated:YES];
}
return result;
}
此代码位于第二个视图中。这是上面MainViewController中提到的方法。
- (int)PDFOpen:(NSString *)path withPassword:(NSString *)pwd {
[self PDFClose];
PDF_ERR err = 0;
m_doc = [[PDFDoc alloc] init]; err = [m_doc open:path :pwd]; switch( err )
{
case err_ok: break;
case err_password: return 2;
break; default: return 0;
}
CGRect rect = [[UIScreen mainScreen]bounds];
//GEAR
if (![self isPortrait] && rect.size.width < rect.size.height) { float height = rect.size.height;
rect.size.height = rect.size.width;
rect.size.width = height;
}
//END
if(SYS_VERSION>=7.0) {
m_view = [[PDFView alloc] initWithFrame:CGRectMake(0, 0, rect.size.width, rect.size.height)]; }
else
{
m_view = [[PDFView alloc] initWithFrame:CGRectMake(0, 0, rect.size.width, rect.size.height-20-44)];
}
[m_view vOpen :m_doc :(id<PDFViewDelegate>)self];
pagecount = [m_doc pageCount];
[self.view addSubview:m_view];
return 1; }
当代码执行时,我知道正在创建视图对象,因为我可以在控制台中看到来自它的调试输出。但是它不会在iPhone模拟器中显示新视图。
随意提供反馈 - 请记住这是我的第一篇StackOverflow帖子!我很乐意根据需要提供更多信息。
答案 0 :(得分:0)
我的主视图控制器被设置为我的应用程序的根视图控制器。我必须将导航控制器设置为根视图控制器,然后再添加其他视图控制器。
之后我告诉navController弹出到根视图控制器。
navController = [[UINavigationController alloc] initWithRootViewController:mainViewController];
self.window.rootViewController = navController;
[self.window makeKeyAndVisible];
[navController setNavigationBarHidden:YES];
[navController popToRootViewControllerAnimated:YES];
navController = [[UINavigationController alloc] initWithRootViewController:mainViewController];
self.window.rootViewController = navController;
[self.window makeKeyAndVisible];
[navController setNavigationBarHidden:YES];
[navController popToRootViewControllerAnimated:YES];