我無法弄清楚如何將導航控制器添加到我的iOS應用程序。我需要除「主屏幕」之外的所有視圖都有後退按鈕,但我不確定如何添加它。添加帶後退按鈕的UINavigationController
這裏是我的項目鏈接: https://www.dropbox.com/s/sv0y3oh1aftxl95/KFBNewsroom%204.zip
我無法弄清楚如何將導航控制器添加到我的iOS應用程序。我需要除「主屏幕」之外的所有視圖都有後退按鈕,但我不確定如何添加它。添加帶後退按鈕的UINavigationController
這裏是我的項目鏈接: https://www.dropbox.com/s/sv0y3oh1aftxl95/KFBNewsroom%204.zip
從所有的發鈔銀行取出的導航欄,以及使用導航控制器(如應用程序的委託像NeverBe概述),然後過渡到孩子控制器通過pushViewController
而不是presentViewController
,您應該自動獲得「後退」按鈕。如果您有任何關於dismissViewControllerAnimated
的信息,您也可以刪除,因爲您的後退按鈕現在可以爲您做popViewControllerAnimated
。但是,如果您需要以編程方式隨時隨地彈出,則可以使用popViewControllerAnimated
。
在你的發鈔銀行,你可能還需要調整模擬指標,讓您可以在導航欄圖形表示,如設計你的筆尖:
見View Controller Catalog的導航控制區與請參閱UINavigationController
Class Reference。
我得到了正確的導航控制器的根視圖。我仍然遇到與使用後退按鈕的導航欄出現在其他視圖上的問題。例如,在ListViewController這是一個表視圖。另外,當我改變[自我presentViewController:webViewController動畫:無完成:無];到[[self navigationController] pushViewController:webViewController animated:YES];它不會讓我在ListViewController中選擇一行進入webview。 – RagingGoat
你能告訴我一個你改變了什麼的例子嗎?當我改變[自我presentViewController:webViewController動畫:無完成:無];至[[self navigationController] pushViewController:webViewController animated:YES]; – RagingGoat
它不會去webview – RagingGoat
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:[[KFBViewController alloc] initWithNibName:@"KFBViewController" bundle:nil]];
self.window.rootViewController = nav;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
調用新的視圖控制器
KFBYouTubeView *youtubeView = [[KFBYouTubeView alloc] initWithNibName:@"KFBYouTubeView" bundle:nil];
[self.navigationController pushViewController:youtubeView animated:YES];
更新:
方法添加自定義導航欄按鈕
- (void)customizeNavigationButtonWithType:(NavigationBarButtonType)type
normalImageName:(NSString *)normalImageName
selectedImageName:(NSString *)selectedImageName
selector:(SEL)selector {
UIImage *img = [UIImage imageNamed:normalImageName];
UIImage *imgPressed = [UIImage imageNamed:selectedImageName];
UIButton *customButton = [UIButton buttonWithType:UIButtonTypeCustom];
[customButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[customButton setImage:img forState:UIControlStateNormal];
[customButton setImage:imgPressed forState:UIControlStateHighlighted];
customButton.frame = CGRectMake(0, 0, img.size.width, img.size.height);
[customButton addTarget:self action:selector forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *btn = [[UIBarButtonItem alloc] initWithCustomView:customButton];
switch (type) {
case NavigationBarButtonTypeLeft:
[self.navigationItem setLeftBarButtonItem:btn animated:YES];
break;
case NavigationBarButtonTypeRight:
[self.navigationItem setRightBarButtonItem:btn animated:YES];
break;
}
}
用法:
[self customizeNavigationButtonWithType:NavigationBarButtonTypeRight
normalImageName:@"create.png"
selectedImageName:@"create_highlight.png"
selector:@selector(pressButton:)];
有沒有辦法在nib文件的界面生成器中添加一個後退按鈕?當我添加該代碼時,它會弄亂我的按鈕佈局。 – RagingGoat
@RagingGoat您確實想使用導航控制器並刪除您手動添加的所有導航欄。如果希望視圖的Interface Builder表示看起來正確,請使用模擬指標,如我在答案中概述的那樣。 – Rob
@RagingGoat答案已更新 – NeverBe
請不要在這裏發佈你的代碼,並期望用它來解決它。做一些研究,告訴你使用了什麼,以及你需要幫助的地方。 – rckoenes