2
我嘗試使用UIButton(提供'關於'信息)作爲導航欄上的標題設置基於導航的應用程序。我可以很容易地建立按鈕作爲標題,但不知道我應該做什麼,所以它是永久性的(並且每次調用一個新的viewController時,導航欄都不會滑動)。這裏是我當前的代碼:在整個應用程序的UINavigationBar上維護UIButton?
AppDelegate.h
@class ViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController *viewController;
@end
AppDelegate.m
#import "AppDelegate.h"
#import "ViewController.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
} else {
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
}
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.window.rootViewController = navController;
[self.window makeKeyAndVisible];
return YES;
}
ViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(100, 4, 120, 36);
[button setImage:[UIImage imageNamed:@"logo_1.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(about) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.titleView = button;
// Do any additional setup after loading the view, typically from a nib.
}
爲了清楚起見,從「viewDidLoad中」的代碼工作正常 - 我只是想有它設置在啓動和永遠持續下去(我有使用單對實際的方法沒有任何問題 - 我只是不希望它被重新加載)。
我一直在挖掘網站和修補幾個小時,似乎無法得到這個工作;謝謝提前幫助。
能否請您詳細說明這是如何實現的呢?聽起來naviBar不可能滑動,但我可以重新計算幾個這樣做的應用程序。我認爲他們使用ViewControllers,並不託管一個/最小類中的每個視圖。 – Ryan
@Ryan我在GitHub上創建了一個示例應用程序來演示。 – GayleDDS
謝謝蓋爾 - 我非常感謝你的幫助。我沒有遇到過這樣的困難,實際上我已經在我的應用中使用了大量的Singleton,除非我錯過了不朽的東西 - 我所能做的就是調用每個類的方法來獲取我想要的導航項。但是我不能永久/靜態地讓我的導航欄坐在上面?我在代碼中遺漏了什麼?爲什麼titleView和rightItem之間存在差異,因爲標題滑落而右側的item可以留下?再次感謝。 – Ryan