如何实现一个按钮在另一个视图中切换

Posted

技术标签:

【中文标题】如何实现一个按钮在另一个视图中切换【英文标题】:how to implement a button to switch in another view 【发布时间】:2013-01-28 18:16:51 【问题描述】:

我是使用 xcode 开发的新手,我正在关注苹果的教程:“第二个 ios 应用教程”。我在我的场景“添加瞄准视图控制器”中添加了一个按钮,并且我想将此视图切换到另一个(BirdsViewController)具有鸟名列表的视图。在我的故事板中,我在按钮和 BirdsViewController 之间创建了一个 segue,并将按钮连接到内部进行修饰,但是当我运行应用程序时,按钮没有出现。有人可以帮我吗?谢谢。 这是我的代码(我没有实现任何其他方法):

AddSightingViewController.h

@class BirdSighting;

@interface AddSightingViewController : UITableViewController  

@property (weak, nonatomic) IBOutlet UITextField *birdNameInput;

@property (weak, nonatomic) IBOutlet UITextField *locationInput;

@property (strong, nonatomic) BirdSighting *birdSighting;

@property (strong, nonatomic)  UIButton *showBirds;

-(IBAction)displayBirds:(id)sender;

AddSightingViewController.m

#import "AddSightingViewController.h"

#import "BirdSighting.h"

#import "BirdsViewController.h"

#import <UIKit/UIKit.h>


@class BirdSighting;

@interface AddSightingViewController ()

@end

@implementation AddSightingViewController

@synthesize showBirds;

-(BOOL)textFieldShouldReturn:(UITextField *)textField 

    if((textField == self.birdNameInput) || (textField == self.locationInput)) 

        [textField resignFirstResponder];   
    
      return YES;    

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 

    if([[segue identifier] isEqualToString:@"ReurnInput"]) 

        if ([self.birdNameInput.text length] || [self.locationInput.text length])

        
            BirdSighting *sighting;

            NSDate *today = [NSDate date];

            sighting = [[BirdSighting alloc] initWithName:self.birdNameInput.text
                                             location:self.locationInput.text date:today];

            self.birdSighting = sighting;
            
       


 BirdsViewController *viewController;

-(IBAction)showBirds:(id)sender 

    viewController =
    [[BirdsViewController alloc]
     initWithNibName:@"BirdsViewController" bundle:nil];
    [[self navigationController] pushViewController:viewController animated:YES];   

【问题讨论】:

【参考方案1】:

我没有看到将按钮作为子视图分配和添加到视图控制器的视图。

我认为在应用程序中和其他文本字段一样,按钮也是 IBOutlet。将按钮声明为 IBOutlet 并将出口连接到接口构建器文件中的按钮。

@property (weak, nonatomic) IBOutlet UIButton *showBirds;

或者分配按钮并作为子视图添加到viewcontroller的视图中。

【讨论】:

我在接口中声明了按钮:@property (weak, nonatomic) IBOutlet UIButton *showBirds(connected to IB) 并在实现中添加了方法:BirdsViewController *viewController; -(void)showBirds:(id)sender [UIButton alloc]; [self.view addSubview:viewController.view]; 这个按钮不会显示在 ios 模拟器中。

以上是关于如何实现一个按钮在另一个视图中切换的主要内容,如果未能解决你的问题,请参考以下文章

C#如何通过一个按钮实现窗体界面的中英文切换?

如何在另一个视图中加载 xib 文件?

如何实现“最喜欢的”按钮功能(如最喜欢的食谱/食物)并显示在另一个片段的另一个列表中

如何切换像 instagram 个人资料这样的视图? (iOS)

如何使用 url 的 editText 和按钮单击在另一个活动中打开 web 视图

如何检测按下的按钮并将其显示在另一个视图上? Objective-C