使用IBAction中的if语句更改UITextView

时间:2013-04-06 04:45:50

标签: ios uitextview uitextviewdelegate

我一直在搜索,但似乎我无法弄明白。我对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;


}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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

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

文档here