2012-06-18 77 views
0

我有一個應用程序,我推動一個模態視圖控制器。它工作正常,但我擔心我沒有以最正確的方式對其進行編碼。我有兩個導航控制器instanstiated,這似乎有點狡猾,我。推兩個導航控制器的視圖控制器

基本上我已經創建了一個帶3個選項卡的標籤欄控制器,然後將其中一個選項卡/視圖控制器作爲根。後來我在覈心文本中使用了一些本土標記,當用戶觸及段落中的特定單詞時彈出視圖控制器。推視圖控制器有一個後退按鈕,工作正常,應用程序似乎是好的。

就像我說的一切正常,但似乎我在這裏編碼。它是否正確?

AppDelegate.h

#import <Foundation/Foundation.h> 

@interface AppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> 
{ 
    UIWindow *window; 
    UITabBarController *tabBarController; 
} 
@property (strong, nonatomic) UIWindow *window; 
@property (strong, nonatomic) UITabBarController *tabBarController; 
@end 

從AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    ViewController *viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 
    ViewController2 *viewController2 = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil]; 
    ViewController3 *viewController3 = [[ViewController3 alloc] initWithNibName:@"ViewController3" bundle:nil]; 

    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:viewController]; 
    self.tabBarController = [[UITabBarController alloc] init]; 
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:nav, viewController2, viewController3, nil]; 
    self.tabBarController.delegate = self; 
    self.window.rootViewController = self.tabBarController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

ViewController3.h

#import <UIKit/UIKit.h> 
#import "JSCoreTextView.h" 
#import "PopupViewController.h" 

@class JSTwitterCoreTextView; 

@interface ReadingViewController : UIViewController <JSCoreTextViewDelegate> 
{ 
    JSTwitterCoreTextView *_textView; 
    UIScrollView *_scrollView; 
} 
@end 

From ViewController3.m

這裏我正在實例化另一個導航控制器。這是一個好主意嗎?

​​

從PopupViewController.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self.navigationItem setRightBarButtonItem:[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone 
       target:self 
       action:@selector(done:)]]; 
} 

- (void)done:(id)sender 
{ 
    [self.parentViewController dismissModalViewControllerAnimated:YES]; 
} 
+0

我不知道該如何改變這段代碼。 – ardochhigh

回答

0

看來,答案是 「是」。我的印象是這款應用只有一個導航控制器,但它更像是每個標籤一個,這取決於是否會從該標籤進一步推送。

相關問題