프로그래밍 방식으로 탐색 모음에 단추 추가
안녕하세요. 내비게이션 바의 오른쪽 버튼을 프로그래밍 방식으로 설정해야 합니다. 그러면 버튼을 누르면 몇 가지 작업을 수행할 것입니다.프로그래밍 방식으로 탐색 모음을 만들었습니다.
navBar=[[UINavigationBar alloc]initWithFrame:CGRectMake(0,0,320,44) ];
마찬가지로, 이 네비게이션 바의 오른쪽에 있는 버튼을 추가해야 합니다.내가 사용한 것에 대해,
1.
UIView* container = [[UIView alloc] init];
// create a button and add it to the container
UIButton* button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 130, 44.01)];
[container addSubview:button];
[button release];
// add another button
button = [[UIButton alloc] initWithFrame:CGRectMake(160, 0, 50, 44.01)];
[container addSubview:button];
[button release];
// now create a Bar button item
UIBarButtonItem* item = [[UIBarButtonItem alloc] initWithCustomView:container];
// set the nav bar's right button item
self.navigationItem.rightBarButtonItem = item;
[item release];
2.
UIImage *im;
im=[UIImage imageNamed:@"back.png"];
[button setImage:im forState:UIControlStateNormal];
[im release];
backButton = [[UIBarButtonItem alloc] initWithCustomView:button];
[backButton setImageInsets:UIEdgeInsetsMake(0, -10,5, 5)];
[self.navigationItem setRightBarButtonItem:backButton];
3.
UIBarButtonItem *refreshItem = [[UIBarButtonItem alloc] initWithTitle:@"button" style:UIBarButtonItemStylePlain target:self action:@selector(refreshLogsAction:)];
self.navigationItem.rightBarButtonItem = refreshItem;
[refreshItem release];
저는 이 모든 방법을 시도했지만 오른쪽에 버튼이 표시되지 않습니다.
내 안에UIViewController
파생 클래스, 나는 다음을 내부에서 사용하고 있습니다.viewDidLoad
:
UIBarButtonItem *flipButton = [[UIBarButtonItem alloc]
initWithTitle:@"Flip"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(flipView:)];
self.navigationItem.rightBarButtonItem = flipButton;
[flipButton release];
이렇게 하면 오른쪽에 Flip이라는 제목의 버튼이 추가되어 메서드가 호출됩니다.
-(IBAction)flipView
이것은 당신 #3과 매우 유사하지만, 제 코드 내에서 작동합니다.
UIImage* image3 = [UIImage imageNamed:@"back_button.png"];
CGRect frameimg = CGRectMake(15,5, 25,25);
UIButton *someButton = [[UIButton alloc] initWithFrame:frameimg];
[someButton setBackgroundImage:image3 forState:UIControlStateNormal];
[someButton addTarget:self action:@selector(Back_btn:)
forControlEvents:UIControlEventTouchUpInside];
[someButton setShowsTouchWhenHighlighted:YES];
UIBarButtonItem *mailbutton =[[UIBarButtonItem alloc] initWithCustomView:someButton];
self.navigationItem.leftBarButtonItem =mailbutton;
[someButton release];
호출된 이벤트
-(IBAction)Back_btn:(id)sender
{
//Your code here
}
스위프트:
var image3 = UIImage(named: "back_button.png")
var frameimg = CGRect(x: 15, y: 5, width: 25, height: 25)
var someButton = UIButton(frame: frameimg)
someButton.setBackgroundImage(image3, for: .normal)
someButton.addTarget(self, action: Selector("Back_btn:"), for: .touchUpInside)
someButton.showsTouchWhenHighlighted = true
var mailbutton = UIBarButtonItem(customView: someButton)
navigationItem?.leftBarButtonItem = mailbutton
func back_btn(_ sender: Any) {
//Your code here
}
탐색 모음에 검색 단추를 추가하려면 다음 코드를 사용합니다.
UIBarButtonItem *searchButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(toggleSearch:)];
self.navigationController.navigationBar.topItem.rightBarButtonItem = searchButton;
다음 방법을 구현합니다.
- (IBAction)toggleSearch:(id)sender
{
// do something or handle Search Button Action.
}
신속하게 탐색 모음에 추가 버튼을 추가하는 방법:
self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: "onAdd:")
추가 시:
func onAdd(sender: AnyObject) {
}
self.navigationItem.rightBarButtonItem=[[[UIBarButtonItem alloc]initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(saveAction:)]autorelease];
-(void)saveAction:(UIBarButtonItem *)sender{
//perform your action
}
Swift 버전, viewDidLoad에 추가:
var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "doneButton:")
navigationItem.rightBarButtonItem = doneButton
View Controller 클래스에서 사용할 수 있습니다.
func doneButton(sender: UIBarButtonItem) {
println(111)
}
다음 코드를 사용합니다.
UIBarButtonItem *customBtn=[[UIBarButtonItem alloc] initWithTitle:@"Custom" style:UIBarButtonItemStylePlain target:self action:@selector(customBtnPressed)];
[self.navigationItem setRightBarButtonItem:customBtn];
간단한 네이티브 편집BarButton을 사용합니다.
self.navigationItem.rightBarButtonItem = self.editButtonItem;
[self.navigationItem.rightBarButtonItem setAction:@selector(editBarBtnPressed)];
그리고 나서.
- (void)editBarBtnPressed {
if ([infoTable isEditing]) {
[self.editButtonItem setTitle:@"Edit"];
[infoTable setEditing:NO animated:YES];
}
else {
[self.editButtonItem setTitle:@"Done"];
[infoTable setEditing:YES animated:YES];
}
}
재미있게 놀아요...!!!
ViewController.m의 ViewDidLoad 메서드에서
UIBarButtonItem *cancel = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(back)];
[self.navigationItem setLeftBarButtonItem:cancel];
"(뒤로)" 선택기는 현재 ViewController를 무시하는 방법입니다.
이거 먹어봐요.저한테는 효과가 있어요.프로그래밍 방식으로 탐색 모음에 버튼을 추가합니다. 또한 이미지를 탐색 모음 버튼으로 설정합니다.
다음은 코드:-
UIBarButtonItem *Savebtn=[[UIBarButtonItem alloc]initWithImage:
[[UIImage imageNamed:@"bt_save.png"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
style:UIBarButtonItemStylePlain target:self action:@selector(SaveButtonClicked)];
self.navigationItem.rightBarButtonItem=Savebtn;
-(void)SaveButtonClicked
{
// Add save button code.
}
BarButtonItem이 아니라 탐색Bar의 단순 버튼을 찾고 있는 경우 아래 코드가 작동합니다.
UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom];
[aButton setBackgroundImage:[UIImage imageNamed:@"NavBar.png"] forState:UIControlStateNormal];
[aButton addTarget:self
action:@selector(showButtonView:)
forControlEvents:UIControlEventTouchUpInside];
aButton.frame = CGRectMake(260.0, 10.0, 30.0, 30.0);
[self.navigationController.navigationBar addSubview:aButton];
안녕하세요 여러분!!UII 이미지 선택기를 사용하여 두 개의 UI 인터페이스 방향이 필요한 당면 문제에 대한 솔루션을 만들었습니다.UIImagePickerController에 대한 segue를 처리하는 내 ViewController에서
**저는..
-(void) editButtonPressed:(id)sender {
BOOL editPressed = YES;
NSUserDefaults *boolDefaults = [NSUserDefaults standardUserDefaults];
[boolDefaults setBool:editPressed forKey:@"boolKey"];
[boolDefaults synchronize];
[self performSegueWithIdentifier:@"photoSegue" sender:nil];
}
**
그런 다음 AppDelegate Class에서 다음 작업을 수행합니다.
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
BOOL appDelBool;
NSUserDefaults *boolDefaults = [NSUserDefaults standardUserDefaults];
appDelBool = [boolDefaults boolForKey:@"boolKey"];
if (appDelBool == YES)
return (UIInterfaceOrientationMaskPortrait);
else
return UIInterfaceOrientationMaskLandscapeLeft;
}
언급URL : https://stackoverflow.com/questions/2848055/add-button-to-navigationbar-programmatically
'programing' 카테고리의 다른 글
선언과 항목 구성요소의 차이점은 무엇입니까? (0) | 2023.08.02 |
---|---|
Android 응용 프로그램을 프로그래밍 방식으로 종료하는 방법 (0) | 2023.08.02 |
node.js, SSL이 있는 socket.io (0) | 2023.08.02 |
Xcode 6에서 IPA를 만드는 방법은 무엇입니까? (0) | 2023.08.02 |
CSS에서 px 또는 remvalue 단위를 사용해야 합니까? (0) | 2023.08.02 |