pushViewController或presentModalViewController在同一屏幕上呈现东西

问题描述:

我有一个iPad应用程序,它可以从RSS提要中获取信息,但我不想在下一个屏幕上显示信息,而是仍然将它显示在同一屏幕中(请参阅图片)pushViewController或presentModalViewController在同一屏幕上呈现东西

当我使用pushViewController什么都没有发生。当我使用presentModalViewController蓝色背景更改为webview。但我想要的是,当我点击左侧Feed中的一行时,右侧的webview获取了该网站。

我推到一个新的屏幕,网页视图进行了测试,这并不工作,但我想这一切在同一屏幕

下面是代码(显然我已经尝试了一些不同的东西,和刚刚离开它注释掉):

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {  
    //EDITED to go to a webView instead of another table of info 
    if (_webViewController == nil) { 
     self.webViewController = [[[WebViewController alloc] 
            initWithNibName:@"WebViewController" bundle:[NSBundle mainBundle]] autorelease]; 
    } 

    MWFeedItem *entry = [parsedItems objectAtIndex:indexPath.row]; 
    _webViewController.entry = entry; 
    //[self.navigationController pushViewController:_webViewController animated:YES]; 
    [self presentModalViewController:_webViewController animated:YES]; 

    //BELOW UNFINISHED SO EDITED OUT 
    //self.webViewController._entry=[objectAtIndexPath:indexPath.row]; 

    // Deselect 
    [self.tableView deselectRowAtIndexPath:indexPath animated:YES]; 

} 

不知道如果我的视图控制器的信息是必要的,但这里是一个删节的版本(展示位置是不同的,但一切是一样的)

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [scroll setScrollEnabled:YES]; 
    [scroll setContentSize:CGSizeMake(3840, self.view.frame.size.height)]; 

    ScheduleRVC *_scheduleRVC = [[ScheduleRVC alloc] initWithNibName:@"ScheduleRVC" bundle:nil]; 
    [_scheduleRVC.view setFrame:CGRectMake(408, 283, 340, 572)]; 
    [scroll addSubview:_scheduleRVC.view]; 

    MySchedule *_mySchedule = [[MySchedule alloc] initWithNibName:@"MySchedule" bundle:nil]; 
    [_mySchedule.view setFrame:CGRectMake(10, 57, 340, 800)]; 
    [scroll addSubview:_mySchedule.view]; 

    WebViewController *_webViewController = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil]; 
    [_webViewController.view setFrame:CGRectMake(408, 57, 340, 184)]; 
    [scroll addSubview:_webViewController.view]; 

} 

enter image description here

请帮助(这将节省小猫)

--ADDITION 如果有帮助的任何,下面的作品从RSS推到的WebView代码(但就像我说的,我希望他们好屏幕上出现在一起,SPLITVIEW不会为我做什么工作)

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    // Show detail 
    if (_webViewController == nil) { 
     self.webViewController = [[[WebViewController alloc] initWithNibName:@"WebViewController" bundle:[NSBundle mainBundle]] autorelease]; 
    } 

    MWFeedItem *entry = [parsedItems objectAtIndex:indexPath.row]; 
    _webViewController.entry = entry; 
    [self.navigationController pushViewController:_webViewController animated:YES]; 


    // Deselect 
    [self.tableView deselectRowAtIndexPath:indexPath animated:YES]; 

} 
+0

你为什么不使用'UISplitViewController'? – 2012-02-04 20:51:20

+0

这个屏幕只是这个应用程序的许多方面之一,拆分不会与其他功能。 – SnowboardBruin 2012-02-04 23:14:00

+0

你不能用滴管提供信息,并强迫人们猜测你想做什么来帮助你。 – viggio24 2012-02-05 07:21:05

如果你想死简单的解决方案,你可以伪造停留在同一视图中通过简单地不动画过渡到你的模态控制器查看,即。 [self presentModalViewController:_webViewController animated:NO];。当你关闭UIWebView时,你也必须禁用动画,即。 [self dismissModalViewControllerAnimated:NO]

或者,您可以将RSS Feed视图和UIWebView放在同一视图中,并且当您想要呈现Web视图时隐藏RSS Feed视图(并取消隐藏UIWebView),并在您做相反的事情时希望RSS源可见。

希望有帮助(足以拯救那只小猫)。

编辑:我应该提及的是,这些不一定遵循苹果的建议设计模式,我只是提供解决方案,将解决您目前的问题。我需要更多信息来确定您的设计是否正确。