您需要知道您的模型上当前选择了哪一行。由于您从 web 视图中引用了模型,这很容易:
int row = [mainModel.blogEntries indexOfObject:mainModel.selectedBlogEntry];
因此,之后您只需要显示下一个(或上一个)条目。根据您的代码,它是这样的:
- (void) showNextPrevEntry:(int)increment usingTheOldController:(BlogEntryController *)controller {
int row = [mainModel.blogEntries indexOfObject:mainModel.selectedBlogEntry];
if (row+increment<[mainModel.blogEntries count] && row+increment>=0) {
mainModel.selectedBlogEntry = [ mainModel.blogEntries objectAtIndex:row+increment];
controller.mainModel = mainModel;
[controller viewDidLoad];
}
}
我认为调用 viewDidLoad 是不健康的。也许您需要另一种方法来更新当前加载的视图并从您的 viewDidLoad 中调用它。另外,我不确定您为什么要使用通知来处理工具栏中的按钮按下,但它确实有效。:)