Я обнаружил, что универсальный подкласс контроллера представления для загрузки веб-представления очень пригоден для повторного использования. У меня два. Один предназначен для контроллера навигации, а другой - контроллер модального вида. Я использую их снова и снова с изменениями для таких вещей, как помощь, юридическая информация и о моей компании. Это будет очень хорошо работать для ваших целей.
Я использую KempoZer в качестве бесплатного редактора HTML для создания загружаемых в него файлов. Преимущество заключается в том, что HTML-редактор позволяет мне добавлять жирный, курсив, заголовки и шрифты разных размеров.
В раскадровке у меня есть несколько переходов к одному и тому же контроллеру представления и задаю два свойства в методе подготовки к переходу в контроллере представления, который вызывает контроллер представления html.
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"instructions"]) {
[[segue destinationViewController] setNavigationTitle:@"Instructions"];
[[segue destinationViewController] setHtmlFileName:@""];
} else if ([[segue identifier] isEqualToString:@"legal"]) {
[[segue destinationViewController] setNavigationTitle:@"Legal Notices"];
[[segue destinationViewController] setHtmlFileName:@"legal.html"];
} else if ([[segue identifier] isEqualToString:@"about"]) {
[[segue destinationViewController] setNavigationTitle:@"About"];
[[segue destinationViewController] setHtmlFileName:@"AboutSuperDuperCoolApps.html"];
} else if ([[segue identifier] isEqualToString:@"videoTutorials"]) {
[[segue destinationViewController] setNavigationTitle:@"Video Tutorials"];
[[segue destinationViewController] setHtmlFileName:@""];
}
}
Вот версия контроллера nab, не забудьте создать контроллер представления раскадровки и подключить веб-представление.
// HTMLViewController.h
#import <UIKit/UIKit.h>
@interface HTMLViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIWebView *webView;
@property (strong, nonatomic) NSString *htmlFileName;
@property (strong, nonatomic) NSString *navigationTitle;
@end
и
// HTMLViewController.
#import "HTMLViewController.h"
@implementation HTMLViewController
@synthesize webView, htmlFileName, navigationTitle;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
//
[self.navigationItem setTitle:navigationTitle];
// load selected html file
NSString *bundle = [[NSBundle mainBundle] bundlePath];
NSString *webPath = [bundle stringByAppendingPathComponent:htmlFileName];
[super viewDidLoad];
[webView loadRequest:[NSURLRequest requestWithURL:
[NSURL fileURLWithPath:webPath]]];
//
[super viewDidLoad];
}
- (void)viewDidUnload
{
[self setWebView:nil];
[self setHtmlFileName:nil];
[self setNavigationTitle:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
@end