0

我一直在寻找很多,但似乎我无法弄清楚。我对 iOS 开发还很陌生,如果我做错了事,我深表歉意。

这是情况。

我正在尝试通过按钮切换 DetailViewController 的内容视图,该按钮应将您发送到下一个文本视图或相同的视图但具有不同的文本。

这是我的头文件。

#import <UIKit/UIKit.h>

@interface DetailViewController : UIViewController
@property (strong, nonatomic) IBOutlet UITextView *rowContent;
@property int rowNumber;
@property (strong, nonatomic) NSString * rowName;
@property (strong, nonatomic) IBOutlet UIBarButtonItem *rightArrow;

@end

我的 tableViewController 根据我选择的单元格将我重定向到我的 DetailViewContoller。现在在我的 DetailViewController 中,我有另一个按钮,我想切换到下一个文本,而不是回到 tableViewController 并选择不同的单元格。

 //DetailViewController
//set the title of the view
self.title = rowName;

//set the UITextView basec on rowNumber
switch (rowNumber) {
    case 0:
        rowContent.text = [NSString stringWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"file" ofType:@"txt"] encoding:NSUTF8StringEncoding error:nil];
        break;
    case 1:
        rowContent.text = [NSString stringWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"file1" ofType:@"txt"] encoding:NSUTF8StringEncoding error:nil];
        break;
    case 2:
        rowContent.text = [NSString stringWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"file2" ofType:@"txt"] encoding:NSUTF8StringEncoding error:nil];
        break;
    case 3:
        rowContent.text = [NSString stringWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"file3" ofType:@"txt"] encoding:NSUTF8StringEncoding error:nil];
        break;
    default:
        break;


//TableViewController
 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
//create and instance of our DetailViewController
DetailViewController * DVC = [[DetailViewController alloc]init];
//set the DVC to the destinationViewContoller
DVC = [segue destinationViewController];
//get the indexPath
NSIndexPath * path = [self.tableView indexPathForSelectedRow];

NSString * theList = [rowList objectAtIndex:path.row];
DVC.rowNumber = path.row;
DVC.rowName = theList;


}
4

2 回答 2

0

如果我正确理解了这个问题,听起来您正在尝试做一些类似于我最近在应用程序中所做的事情。也就是说,您在导航控制器中有一个表格视图,当您选择一个单元格时,它会转到详细视图,然后您希望能够在不同的详细视图之间导航,而无需返回表格视图来选择另一个单元格。

我使用 UIPageViewController 做到了这一点。实现起来有点复杂,但是使用起来很干净。它的工作方式是当您点击一个单元格时,它会转到一个包含 UIPageViewController 的视图,然后根据点击的单元格加载适当的“页面”。UIPageViewController 处理页面之间的来回移动。您提供一个模型控制器作为 UIPageViewController 的数据源。它的作用是返回给定索引(页码)的详细视图控制器。要让 UIPageViewController 为每个页面加载适当的数据,您需要向它提供您用来填充表格视图的相同数据。

假设您的表格中有三个单元格。点击中间的,它会使用 UIPageViewController 加载视图。当单元格被点击并且你正在转换到详细视图时,你告诉它哪个单元格被点击了。UIPageViewController 然后使用这个信息来加载正确的细节视图。当用户想要在页面之间导航时,UIPageViewController 只需加载下一页或上一页的数据,其中包含对应于表格视图中该单元格的数据。

请注意,UIPageViewController 不知道也不关心表格视图,它只是使用表格视图用来加载其数据的相同源数据(例如数组)。

文档在这里

于 2013-04-07T01:55:42.050 回答
0

你的问题有点令人困惑。如果要切换到下一个案例,从一个按钮,只需写rowNumber ++;在您的按钮方法中,然后调用您的 switch 语句所在的方法。

于 2013-04-06T05:09:40.587 回答